본문 바로가기
공부하며놀자/프로그래밍

[leetcode] 9. Palindrome Number

by 테너토너 2021. 1. 15.

Given an integer x, return true if x is palindrome integer.

An integer is a palindrome when it reads the same backward as forward. For example, 121 is palindrome while 123 is not.

 

Example 1:

Input: x = 121 Output: true

Example 2:

Input: x = -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: x = 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Example 4:

Input: x = -101 Output: false

 

Constraints:

  • -231 <= x <= 231 - 1

 

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

 

string으로 변경해서 하면 쉬울텐데 그러면 공부가 안 되니 하지 말라고 한다.

0도 true가 되는 경우를 빼 먹고 진행하여 제출 후 수정하였다.

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x == 0:
            return True
        
        if x < -2**31 and x > 2**31 -1:
            return False
        
        if x < 0:
            return False
        
        if x % 10 == 0:
            return False
        
        
        
        result = 0
        remainder = x
        
        while remainder:
            digit = remainder % 10
            remainder = remainder // 10
            
            result = result*10 + digit
        
        if result == x:
            return True
        else:
            return False
        
반응형

댓글