LeetCode - 2697. Lexicographically Smallest Palindrome

henu·2023년 9월 19일
0

LeetCode

목록 보기
80/186

Solution

var makeSmallestPalindrome = function(s) {
    const arr = [...s]

    for(let i=0, j=arr.length-1; i<j; i++, j--) {
        if(arr[i].charCodeAt() < arr[j].charCodeAt()) {
            arr[j] = arr[i];
        } else {
            arr[i] = arr[j]
        }
    }

    return arr.join('')
};

Explanation

Two Pointers를 이용하여 쉽게 해결하였다.
먼저 변경이 가능하다록 하기 위하여 문자열 s를 배열로 변환하였다.
그리고 두 포인터 ij를 설정하였다. i는 첫 번째 인덱스부터 접근하는 포인터이고 j는 마지막 인덱스부터 거꾸로 접근하는 포인터이다.
charCodeAt 메소드를 사용하여 두 문자열의 알파벳 순서를 비교한 후 상황에 맞게 바꿔주면 된다.

0개의 댓글