判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
回文数是负数直接返回False,因为负数肯定不是回文数,如:'-1 ' 的回文是 '1-'只需要考虑大于等于 0 的时候,首先把数字转换成一个字符串,这样就非常方便判断。定义两个指针一个指向第一个元素的首指针和一个指向末尾的尾指针,然后首指针后移,尾指针前移作对比,如果中间有不相等的就返回False,如果没有直到首尾指针相遇说明是一个回文数。
class Solution: def isPalindrome(self, x: int) -> bool: if x <0: return False # 负数肯定不是回文数 s = str(x) # 把s转换成str beg, end = 0, len(s)-1 while beg < end: # s是个位数的时候不会执行到 while里 if s[beg] == s[end]: beg += 1 end -= 1 else: return False return True def test(): s = Solution() print(s.isPalindrome(121) is True) print(s.isPalindrome(-1) is True) print(s.isPalindrome(1) is True) test()
