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
반응형
'공부하며놀자 > 프로그래밍' 카테고리의 다른 글
[leetcode] 14. Longest Common Prefix (0) | 2021.01.16 |
---|---|
[leetcode] 13. Roman to Integer (0) | 2021.01.16 |
[leetcode] 7. Reverse Integer (0) | 2021.01.15 |
Visual Studio Post-build 적용하기 (0) | 2019.07.24 |
[LeetCode] 2.Add Two Numbers (Medium) (0) | 2019.04.11 |
댓글