LeetCode 알고리즘 문제풀이

[LeetCode-344 ] Reverse String 문제풀이 - Java 사용

줄라이퍼스트 2020. 5. 8. 00:44

Reverse String  문제풀이 - Java 사용

344. Reverse String

 

해당사이트는 영어로 되어있어 구글 번역기를 이용하여 번역을 하였다.

문자의 배열이 입력으로 들어오면 해당배열을 거꾸로배열을 출력하는 문제이다.

단 입력된 배열을 그대로 조작

 

public class Solution {
    public void reverseString(char[] s) {
                            
        int i = 0;
        int j = s.length - 1;
        
  /*
           매개변수 s에는
           s[0] = h
           s[1] = e
           s[2] = l
           s[3] = l
           s[4] = o
           들어있음

           1. 
            while(i<j){ => 0<4
                char tmp = s[0]; => tmp는 h
                s[i] = s[j]; => s[0] 은 o
                s[j] = tmp; => s[j] 은 h
                i++; => i 1증가
                j--; => j 1감소
            }

            2. while(i<j){ => 1<3
                char tmp = s[1]; => tmp는 e
                s[i] = s[j]; => s[1] 은 l
                s[j] = tmp; => s[j] 은 e

            3... 이런식으로 반복
            }
   
   */     
        while(i < j){
            char tmp = s[i]; 
            s[i] = s[j]; 
            s[j] = tmp; 
            i++;
            j--;
        }
    }
}
    

 

 

추가적으로 이클립스에서 다른방법으로 코딩을 해보았다.

// reetcode 344문제
public class Solution {
	
	public static void main(String[] args) {
		reverseString("hello");
	}
	
	private static void reverseString(String s) {
		// len 변수에는 현재 5가 저장 되어있음
		int len = s.length();
		// 자바 StringBuilder를 이용하여 문자추가
		StringBuilder str = new StringBuilder(len);
		
		// for문을 이용 
		for (int i = len - 1; i >= 0; i--) {
			// 첫번째 s[4] = o 저장
			// 두번째 s[3] = l 저장
			// 세번째 s[2] = l 저장
			// 네번째 s[1] = e 저장
			// 네번째 s[0] = h 저장
			str.append(s.charAt(i));
		}
		System.out.println("문자열 hello의 reverse된 값은 " + str.toString());
	}
}

 

 

 

출력된 값