今天第一次做leetcode上面的题,选了一道easy型的判断回文数,但这第一道题完成的太艰难了,代码能写出来,可是第一次用,那个上面规则和格式挺麻烦,我在spyder上运行没问题,在leetcode上面就是通不过,一顿修改,一个小时就这么没有了,但最终还是过了,挺高兴的,以后做程序员吗?我也不知道,大概率不会,但是喜欢编程,就坚持下去吧。另外,看了一些评论区,竟然有人用一行代码解决了,我直接哭死。
解析:根据题目描述和给出的示例,首先确定回文数是一个非负数,比如-121反过来是121-就不行,然后就想办法把对称位置的数进行比较。
def ispalindrome(x):
t = len(x)
L = list(x)
if int(x)<0:
print('False')
elif t%2==0:
for i in range(t):
if i<=t//2-1:
if L[i]==L[t-1-i]:
continue
else:
print('False')
break
else:
print('True')
break
else:
for i in range(t):
if i<=(t-1)//2-1:
if L[i]==L[t-1-i]:
continue
else:
print('False')
break
else:
print('True')
break
x = input('please input a integer:')
ispalindrome(x)
注 代码已进行测试,就不再写输出结果了
class Solution:
def isPalindrome(self, x: int) -> bool:
t = len(str(x))
L = list(str(x))
if int(x)<0:
return False
elif t%2==0:
for i in range(t):
if i<=t//2-1:
if L[i]==L[t-1-i]:
continue
else:
return False
break
else:
return True
break
else:
for i in range(t):
if i<=(t-1)//2-1:
if L[i]==L[t-1-i]:
continue
else:
return False
break
else:
return True
break
这time。。。革命尚未成功,同志仍需努力啊