非常新的编程,我正在尝试解决一些Project Euler问题。我想知道一个识别回文和非回文的python代码。最有效的方法是什么?你能否展示一下你认为对这个问题最有效的代码。
答案 0 :(得分:2)
你可以非常简单地通过检查你输入的字符串是否与其自身相反(这就是回文是什么)来做到这一点。
def check_palindrome(s):
return s == s[::-1]
[::-1]
会反转字符串,因为-1
表示要经过多少步,而负数则会反过来字符串。
如果你需要检查整数是否是回文,你可以这样做:
def check_palindrome(s):
return str(s) == str(s)[::-1]
答案 1 :(得分:1)
我很擅长简单(可能是错误的)优化。从一些事情开始,然后继续前进:
def is_palindrom(s):
length = len(s)
for i in range(length / 2):
if s[i] != s[length - i - 1]:
return False
return True