Python中的回文:如何检查数字是回文?

什么是回文?

回文是从左到右或从右到左读取时相同的字符串。换句话说,回文字符串是其反向与原始字符串相等的字符串。

例如,公民,夫人就是回文。

猫不是回文。由于其反向是tac,所以它不等于原始字符串(cat)。

编写程序以查找输入字符串是否是回文。

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

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

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

  • 将反向字符串与原始字符串进行比较。

  • 如果两个字符串相等,则返回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-找不到字符串的反向

这个想法是连续比较字符串的第一个索引和最后一个索引的字符,直到它们不相等为止。

我们将看到两个示例,而没有找到字符串的反面-

字符串值“女士”:

  • 我们比较相等的第一个和最后一个字符,进一步比较相等的第二个和倒数第二个字符。最后,我们只剩下一个字符。因此,字符串是回文。

字符串值“阅读器”:

  • 字符相等,直到倒数第二个和倒数第二个元素之间进行比较。

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

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

  • 我们什么时候返回假?如果发现任何一组指针的字符都不相等,则无需寻找其他索引,并且可以返回False。

  • 我们什么时候返回True?在另一种情况下,如果字符串是回文,则当两个指针都相等(仅剩下1字符要检查)或开始指针超过结束指针(所有字符都被检查)时,我们将返回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