본문 바로가기

Java/알고리즘

[자바 알고리즘 인터뷰] 6장 문자열 처리(2) 문자열 뒤집기

https://leetcode.com/problems/reverse-string/description/

 

 

- 문자열을 뒤집는 함수를 작성하라, 입력값은 문자 배열이며, 리턴없이 입력 배열 내부를 직접 조작하라

 

풀이 1) 문자 배열로 스왑 

 

- 서로 중앙으로 나아가다 겹치는 지점에 도달하면 종료하는 형태 

- 스왑을 통해 배열 내부의 값을 변경 

 

class Solution {
    public void reverseString(char[] s) {
        int start = 0;
        int end = s.length-1;

        //서로 중앙으로 이동해 나가다 겹치는 지점에 도달하면 종료
        while(start<end)
        {
            //임시 변수를 이용해 값 스왑
            char temp = s[start];
            s[start] = s[end];
            s[end] = temp;

            //앞쪽 문자는 한 칸 뒤로, 뒤쪽 문자는 한 칸 앞으로 이동
            start++;
            end--;
        }
    }
}