【发布时间】:2021-09-10 19:15:56
【问题描述】:
所以我正在尝试编写一个函数来检查一个字符串是否是回文(如果它向后拼写相同的回文例如:hannah)
这是我在网上看到的一个解决方案,我不太明白,任何简单的解释都将不胜感激
def isPalindrome(string):
left_pos = 0
right_pos = len(string) - 1
while right_pos >= left_pos:
if not string[left_pos] == string[right_pos]:
return False
left_pos += 1
right_pos -= 1
return True
print(isPalindrome('hannah'))
编辑:抱歉我不够清楚,我主要不理解while循环中设置的条件和if语句背后的逻辑。
【问题讨论】:
-
哪一部分你不明白?
-
哪一部分你不明白?里面的一切都很基础。
-
not x == y是x != y的一种尴尬且不常见的写作方式。 (和not (x == y)一样,不是(not x) == y,因为not的优先级低。) -
如果字符串 = 'racecar'。您尝试开始将 s[0] 与 s[-1] 进行比较并从中取得进展...您可以通过在 pythontutor.com 中运行此程序来直观地看到正在发生的事情
-
请注意,这不会将
'Hannah'报告为回文,因为'H'不等于'h'。
标签: python string palindrome