📅  最后修改于: 2023-12-03 15:23:04.191000             🧑  作者: Mango
这是一道ISRO CS 2017中的编程问题。它要求我们设计一个Python程序,用于检测输入的字符串是否是回文,即正反读都一样。回文字符串的例子包括"racecar"和"madam"等等。
判断回文需要比较字符串中的每一个字符是否对称。我们可以使用两个指针分别从字符串的首尾开始遍历,每次比较两个指针所指向的字符是否相等。如果不相等,则字符串不是回文。如果所有字符都比较完毕,且都相等,则字符串是回文。
程序实现如下:
def is_palindrome(input_str):
left, right = 0, len(input_str) - 1
while left <= right:
if input_str[left] != input_str[right]:
return False
left += 1
right -= 1
return True
我们可以编写一些测试样例,检验我们的程序是否正确。
assert is_palindrome("racecar") == True
assert is_palindrome("madam") == True
assert is_palindrome("hello") == False
回文字符串是一类很有趣的字符串,在很多地方都有用到。通过指针的方式,我们可以比较高效地判断字符串是否为回文。这个问题也是Python编程练手的一个好题目。