Python中的回文:如何检查一个数字是否为回文?


什么是回文?

回文是指从左到右读和从右到左读都相同的字符串。换句话说,回文字符串是指其反转等于原始字符串的字符串。

例如,civic、madam是回文。

Cat不是回文。因为它的反转是tac,它不等于原始字符串(cat)。

编写一个程序来查找输入字符串是否为回文。

方法1 - 查找字符串的反转

  • 程序中需要的主要内容是查找字符串的反转。

  • 反转可以使用任何反转字符串的方法来找到。我们将使用简单的切片方法来反转字符串。内置的 ‘’.join(reversed()) 也可以使用。虽然还有其他方法可以反转字符串,但我们将使用简单的方法。

  • 将反转后的字符串与原始字符串进行比较。

  • 如果两个字符串相等,则返回true,否则返回false。

示例

def isPalindrome(s):
   rev=s[::-1]
   if(rev==s):
      return True
   return False
print("Enter a string")
st=input()
print(isPalindrome(st))

输出

Enter a string
madam
True

方法2 - 不查找字符串的反转

其思想是连续比较字符串首尾字符,直到它们不相等。

我们将看到两个不查找字符串反转的示例:

字符串值 "madam"

  • 我们比较第一个和最后一个字符,它们相等,接下来我们比较第二个和倒数第二个字符,它们也相等。最后我们只剩下一个字符。因此,该字符串是回文。

字符串值 "reader"

  • 字符在第二个和倒数第二个元素之间的比较时相等。

    当第三个和倒数第三个字符比较时,它们不相等,因此它不是回文。

  • 我们可以通过递归或使用两个指针来实现这个想法。我们将使用两个指针来实现。我们从起始指针为0和结束指针为最后一个索引开始。我们开始比较,如果字符相等,我们增加起始指针并减少结束指针(从而将它们带到第二个和倒数第二个字符等等)。

  • 我们什么时候返回false?如果我们发现任何一组指针的字符不相等,我们不需要查找其他索引,我们可以返回False。

  • 我们什么时候返回True?在另一种情况下,如果字符串是回文,当两个指针相等(只剩下一个字符需要检查)或起始指针超过结束指针(所有字符都已检查)时,我们将返回True,因此返回true。

示例

def isPalindrome(s):
   rev=s[::-1]
   if(rev==s):
      return True
   return False
print("Enter a string")
st=input()
print(isPalindrome(st))

输出

Enter a string
reader
False
>>>
Enter a string
madam
True

更新于: 2021年3月11日

578 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告