본문 바로가기
Programming Solve/Leetcode

리트코드(Leetcode) - Palindrome number

by msm1029 2021. 3. 24.
반응형

문제 링크 : leetcode.com/problems/palindrome-number/

 

풀이 : 121, 2112같은 수를 찾는 문제. 음수면 -가 붙어 모두 Palindrome Number가 아니고 0이면 맞다.

이제 양수일 경우 string으로 변환하여 처음과 끝을 비교하며 같으면 지워나간다. 틀린다면 false를 반환한다.

size가 1이 되거나 0이 되면 Palindrome Number이므로 true를 반환한다.

 

이 문제의 심화 버전으로, string으로 변환하지 않고 숫자 그대로 풀이해보라고 리트코드에서 말한다.

Follow up: Could you solve it without converting the integer to a string?

 

<코드>

class Solution {
public:
    bool isPalindrome(int x) {
        if(x<0) return false;
        else if(x==0) return true;
        else{
            string tmp = to_string(x);
            
            while(!tmp.empty()){
                if(tmp.front() == tmp.back()){
                    if(tmp.size()==1){
                        return true;
                    }    
                    else{
                        tmp.erase(tmp.end() - 1);
                        tmp.erase(tmp.begin());
                    }
                }
                else{
                    return false;
                }
            }
            return true;
        }
    }
};
반응형