Python 3.2 回文

标签 python python-3.x palindrome

我正在做一些 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提到的技巧

关于Python 3.2 回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758791/

相关文章:

c++ - 检查数字是否是 C++ 中的回文

c - C 中没有指针和递归的回文

java - 回文测试仪

python - Django 查询集 : filtering by related item manager

python - 如何使用手动 setup.py 全局安装 python 包?

python - 如何使用centos在VPS上上传django应用程序

python - 将字母序列传递给 CNN - Keras

python-3.x - 我的条形图未显示所有数据值的条形图

python-2.7 - 无法从 Explorer [2013] 通过 IDLE 运行 Python - IDLE 的子进程未建立连接

Python - 捕获无人机程序的任何错误