回文是一个前后读相同的字符串。回文的例子包括“lol”、“abba”、“radar”和“pickle elkchip”。指示它是否在以下docstring中描述的所有情况下都能工作:“如果字符串s是回文,则返回True;否则返回False。”
def palindrome2(s):
n = len(s)
pal = True
for i in range(n/2):
if s[i] == s[n-i-1]:
pal = True
else:
pal = False
return pal
我不明白为什么这个功能不起作用。在我看来,这个功能好像起作用了。很明显,布尔函数被误用了,但我不明白上面的布尔函数是怎么被不恰当地使用的。有人能给我解释一下吗?在
循环体的编码方式}之间反复变化,这取决于在特定的迭代过程中给定的一对字符是否匹配。在
pal
的值可能在True
和{最好检查是否存在不等式,将布尔变量
pal
设置为False
,然后立即退出循环。在像这样:
或者,不使用布尔变量:
^{pr2}$为了好玩,你也可以尝试更简单的方法:
(留给读者关于如何工作的练习)
你总是检查每个字符。一旦你确定了结果,你需要尽快回来。在
相关问题 更多 >
编程相关推荐