LeetCode(9) - Palindrome Number

문제

integer x가 주어질 때, x가 Palindrome(회문)을 만족하면 true를 return, 아니라면 false를 리턴

입력

x = 121

출력

true

풀이

  1. 입력 x를 string으로 변환
  2. 앞부분을 가르키는 index front와 뒷부분을 가르키는 index back을 만들어 앞부분은 증가를, 뒷부분은 감소하며 전체 string 비교
  3. frontback보다 커질 때 까지 비교하여 frontback보다 커진다면 회문으로 판단, 순회를 종료하고 true반환. 비교 중 다른 값이 나온다면 곧바로 false반환

코드

class Solution {
public:
    bool isPalindrome(int x) {
        string s = to_string(x);
        int front = 0, back = s.size() - 1;
        while (front <= back) {
            if (s[front++] != s[back--])
                return false;
        }
        return true;
    }
};

참고

  • to_string은 library에 있음