Post

leetcode(리트코드)9-Palindrome Number

leetcode 9 - Palindrome Number 문제입니다.

1. 문제

https://leetcode.com/problems/palindrome-number/


2. Input , Output


3. 분류 및 난이도

Eazy 난이도 문제입니다.
leetcode Top 100 Liked 문제입니다.


4. 문제 해석

  • 간단한 문제입니다. 정수로 들어온 값이 Palindrome인지 판단합니다.
  • string으로 바꿔서 풀었습니다.
  • 풀고나서는 음수 값이 들어오면 Palindrome이 성립할 수 없기에 그냥 Brute Force로 풀었어도 되었을 것 같습니다.

5. code

c++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
    bool isPalindrome(int x) {
        string temp = std::to_string(x);
        int left = 0;
        int right = temp.size()-1;
        while(left<=right)
        {
            if(temp[left++]!=temp[right--])
                return false;
        }
        return true;
    }
};

python

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
    def isPalindrome(self, x: int) -> bool:
        temp = str(x)
        left = 0
        right = len(temp)-1
        while(left<=right):
            if temp[left]!=temp[right]:
                return False
            left+=1
            right-=1
        
        return True

6. 결과 및 후기, 개선점

c++ 54% python 98%

c++ 100% 0ms code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 class Solution {
public:
    bool isPalindrome(int x) {
        int temp = x;
        long rev, rem;
        rev = 0;
        
        if (x < 0)
            return false;
        
        while (temp != 0){
            rem = temp % 10;
            rev = rev * 10 + rem;
            temp = temp/10;
        }
        
        if (x == rev)
            return true;
        else
            return false;
    }
};

string으로 바꾸지않고 맨 뒤의 값과 맨 앞의 값을 비교하면서 푼 코드입니다.

This post is licensed under CC BY 4.0 by the author.