Home [HackerRank] Java String Reverse
Post
Cancel

[HackerRank] Java String Reverse

[HackerRank] Java String Reverse

Ploblem

스크린샷 2020-06-21 오후 7 12 16

My solution

  • 예전에 동일한 문제 해결 방법으로 Stack에 넣었다가 pop()으로 reverse 한다는 이야기를 들은적이 있어서 그렇게 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void solution(String s) {
		if(isPalindrome(s)) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	}

	private boolean isPalindrome(String s) {
		Stack<Character> stack = new Stack<>();
		for (char c : s.toCharArray()) {
			stack.push(c);
		}

		StringBuilder sb = new StringBuilder();
		while(!stack.isEmpty()) {
			sb.append(stack.pop());
		}

		return sb.toString().equals(s);
	}

Simple solution

  • StringBuilder 객체로 만든 뒤 reverse() 호출
1
2
3
private void solution2(String s) {
		System.out.println( s.equals( new StringBuilder(s).reverse().toString()) ? "Yes" : "No" );
	}

추가 내용

  • 내가 풀이한 방법대로 했을때 공간복잡도를 생각했을때 더 많이 사용될 수 있음. Stack 인스턴스를 만들어야 하기 떄문.. 만약 StringBulder 없이 하더라면 비슷할것으로 생각된다.
  • StringBuilder.reverse() 코드를 보면 for-loop를 돌면서 처리한다.

Code Repo

Refference

This post is licensed under CC BY 4.0 by the author.

[HackerRank] Java Loops II

Spring AOP 이야기 - AOP는 언제 써야할까?

Comments powered by Disqus.