我有下面的代码,在浏览python时,选项aaabaaaa,zzzzazzz给了我false测试。这里是代码,我不太确定如何修复它。你知道吗
def checkPalindrome(inputString):
n=len(inputString)
#if string is one letter
if n==1:
return True
#if string has more than one letter
for i in range (0, math.floor(n/2)) :
if inputString[i]!=inputString[n-1-i]:
return False
else:
return True
另一种方法是使用切片。字符串可以通过类似索引的数组/列表进行访问,也可以像这样进行反转。你知道吗
[::-1]切片返回反向字符串,如果与原始字符串相同,则与原始字符串的比较为True,否则为false。你知道吗
你有一些问题。这里的主要问题是
else
子句在循环中有一个return True
。您要做的是在返回True
之前完成对字符串的迭代。如果您熟悉布尔逻辑,这相当于用AND
短路。你知道吗另一个问题(不是真正的问题,更多的是吹毛求疵)是您可以只使用整数除法
//
,而不必导入math
的floor
函数。你知道吗所以
另一种处理方法是使用
all
:或者,利用python方便的切片表示法实现最简洁的解决方案,我们有:
尝试使用数组切片(反转字符数组)
相关问题 更多 >
编程相关推荐