我正在为学校做一个回文检查计划,但有一个转折。
现在我已经知道我可以使用反向函数或类似的东西:
[-1::-1]
但是,该程序特别要求不进行字符串切片或使用.reverse()函数。所以,我的问题是,如果我不能使用这两种简单的方法,我将如何去做呢?
答案 0 :(得分:5)
很明显,这只是出于学术目的,因为使用反向功能这段代码是微不足道的。
def is_palindrome(string):
for i,char in enumerate(string):
if char != string[-i-1]:
return False
return True
>>> is_palindrome('hello')
False
>>> is_palindrome('helloolleh')
True
>>> is_palindrome('')
True
>>> is_palindrome(' ')
True
>>> is_palindrome('a')
True
答案 1 :(得分:4)
典型的解决方案是:
def is_palindrome(string):
result = True
str_len = len(string)
for i in range(0, int(str_len/2)): # you need to check only half of the string
if string[i] != string[str_len-i-1]:
result = False
break
return result # single return statement is considered a good practice
答案 2 :(得分:1)
你根本不需要任何reverse
功能来检查是否有回文。考虑:
尝试在python中实现这一点 - 这很容易! (提示:最后一个字符为str[-1]
,中间字符为str[1:-1]
)。