识别回文蟒蛇的两种不同方法的优缺点



我是python和编程的新手,对编写回文检测器的不同方法有疑问。

据我所知,我能够使用 while 循环制作一个......

word = str(input("Enter a word: "))
length = len(word)
x = 0
while length-x >= x:
if word[(length-1)-x] == word[x]:
y = True
x += 1
else:
y = False
break           
print (y)

但是从其他回文问题中,我看到了更短(更蟒蛇?

word = input("Enter a word: ")
rword = word[-1::-1]
print (word == rword)

除了长度上的明显差异之外,使用这两种代码的优缺点是什么?另外,不确定这是否是一个愚蠢的问题,但其中任何一个都被认为是递归的吗?

第一个优点是不需要复制word。这只有在它变大(或者你需要这样做几百万次(时才重要。

请注意,word[::-1]就足够了,开头是隐式0

您的第一个代码也可以简化一点(并放入函数中(:

def is_palindrome(s):
for i in range(len(s)):
if s[i] != s[-(i + 1)]:
return False
return True

最新更新