判断一个整数是否是回文数,满足:不允许把整数转换为字符;对于特别大的整数,运算时不可超出环境中整数允许的最大值。
def is_palinedrome(integer):
if integer < 0 or (integer % 10 == 0 and integer != 0):
return False
temp = 0
while temp < integer:
temp = integer % 10 + temp * 10
integer //= 10
return integer == temp or integer == temp // 10
时间复杂度为 O ( log n ) O(\log n) O(logn);空间复杂度为 O ( 1 ) O(1) O(1)。