Skip to main content
 首页 » 编程设计

Python 3.2 回文

2025年05月04日12lexus

我正在做一些 python 在线教程,但我遇到了一个练习:A palindrome is a word which was spelled forwards as backwards.例如,单词

赛车

是回文:第一个和最后一个字母相同 (r),第二个和倒数第二个字母相同 (a),等等。编写一个函数 isPalindrome(S) 以字符串 S 作为输入,如果字符串是回文,则返回 True,否则返回 False。 这些是我写的代码:

  def isPalindrome(S): 
      if S[0] == S[-1] 
        return print("True") 
      elif S[0] == S[-1] and S[1] == S[-2] : 
        return print("True") 
      else: 
        return print("False") 

但是,如果单词是例如 ,,sarcas,, ,则输出不正确。所以我需要修复我的代码,以便它适用于任何单词。

请您参考如下方法:

O(n) 和内存昂贵的单行解决方案是:

def isPalindrome(word) : return word == word[::-1] 

使用相同内存量的 O(n/2) 解决方案是:

def palindrome(word): 
   for i in range(len(word)//2): 
         if word[i] != word[-1-i]: 
                 return False 
   return True 

这就是@LennartRegebro提到的技巧