LeetCode 344: Reverse String 풀이

📊 결과


💻 내 코드

class Solution {
    public void reverseString(char[] s) {
        for (int i = 0; i < s.length / 2; i++) {
            char temp = s[i];
            s[i] = s[s.length - 1 - i];
            s[s.length - 1 - i] = temp;
        }
    }
}

📝 평가

✔ 잘한 점

✦ 개선점

없음. 완벽한 풀이. 떙큐


✨ 다른 방법

Two Pointer 명시적 버전

class Solution {
    public void reverseString(char[] s) {
        int left = 0;
        int right = s.length - 1;
        
        while (left < right) {
            char temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            left++;
            right--;
        }
    }
}

XOR Swap (비추천)

class Solution {
    public void reverseString(char[] s) {
        for (int i = 0; i < s.length / 2; i++) {
            int j = s.length - 1 - i;
            s[i] ^= s[j];
            s[j] ^= s[i];
            s[i] ^= s[j];
        }
    }
}

📊 성능

방법 시간 공간
내 코드 O(n) O(1)
Two Pointer O(n) O(1)
XOR O(n) O(1)

🎯 핵심

In-place Reverse = Two Pointer Swap


🏷️ Keywords

#LeetCode #TwoPointer #String #Easy #InPlace