Python中的回文数:如何判断一个数字是否为回文数?
更多Python相关文章,请阅读:Python 教程
什么是回文数?
回文数是一种字符串,从左到右读和从右到左读都相同。换句话说,回文字符串的反转等于原始字符串。
例如,civic、madam是回文数。
Cat不是回文数。因为它的反转为tac,不等于原始字符串(cat)。
编写一个程序,判断输入的字符串是否为回文数。
方法1-查找字符串的反转
- 程序中的主要事项是查找字符串的反转。
-
反转可以使用任何字符串反转方法来查找。我们将使用简单的切片方法来反转字符串。也可以使用内置的”.join(reversed())。虽然有其他方法可以反转字符串,但我们将使用简单的方法。
-
比较反转的字符串与原始字符串。
-
如果两个字符串都相等,则返回True,否则返回false。
示例
输出
方法2 -不查找字符串的反转
思路是不断比较字符串第一个和最后一个索引处的字符,直到它们不等。
我们将看两个不查找字符串反转的例子−
字符串值“madam”:
- 我们比较相等的第一个和最后一个字符,然后我们比较相同的第二个和第二个最后一个字符。最后,我们只剩下一个字符。因此,该字符串是回文数。
字符串值“reader”:
- 字符在进行第二个和第二个最后的比较时是相等的。
当比较第三个和第三个最后的字符时,它们不相等,因此不是一个回文数。
-
我们可以通过递归或使用两个指针来实现这个想法。我们将使用两个指针来实现。我们从起始指针开始,在最后一个索引处结束。我们开始比较,如果字符相等,则我们增加起始指针并减少结束指针(因此将它们带到第二个和第二个最后一个字符等等)。
-
我们什么时候返回false?如果我们发现任何一组指针的字符不相等,我们不需要查找更多的索引,可以返回False。
-
什么时候返回True?在另一种情况下,如果字符串是回文数,则当两个指针变得相等(只有一个字符需要检查)或者起始指针超过结束指针时(所有字符都已检查)返回True。