检查字符串是否为回文

Checking if a string is palindrome

所以我正在尝试编写一个函数来检查字符串是否为回文(回文如果它向后拼写相同例如: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 语句背后的逻辑。

它将最后一个字符与第一个字符进行比较,并按如下方式在字符串内部移动:

hannah
^    ^

检查两个字母是否相等:(return如果不相等则为假) 将索引移动 1

hannah
 ^  ^

做同样的检查

hannah
  ^^

此时右索引=左索引

return 在这种情况下是正确的