Python 有效回文


假设我们有一个带有字母数字和符号的字符串。也有小写字母和大写字母。我们必须检查仅考虑小写字母(大写字母将转换为小写),是否忽略其他符号(如逗号、空格),该字符串是否形成回文。

假设字符串类似于“A Man, a Plan, a Canal: Panama”,则通过考虑这些规则,它将变为“amanaplanacanalpanama”。这是一个回文。

要解决这个问题,请按照下列步骤操作 –

  • 定义 x = “”
  • 读取 str 中的每个字符 c –
    • 如果 c 是小写字母或数字,则将 c 追加到 x 中
    • 否则,c 是一个大写字母,然后只需将其转换为小写,并在 x 后追加
  • 如果 x 是回文,则返回 True,否则返回 False

示例

让我们看看实现效果,以便更好地理解

 Live Demo

class Solution(object):
   def isPalindrome(self, s):
      """
      :type s: str
      :rtype: bool
      """
      x = ""
      diff = ord('a') - ord('A')
      for i in s:
         if ord(i)>=ord('a') and ord(i)<=ord('z') or ord(i)>=ord("0") and ord(i)<=ord("9"):
            x+=i
         elif ord(i)>=ord('A') and ord(i)<=ord('Z'):
            i = chr(diff+ord(i))
            x+=i
      #print(s)
      #print(x)
      return x == x[::-1]
ob1 = Solution()
print(ob1.isPalindrome("A Man, a Plan, a Canal: Panama"))

输入

s = "A Man, a Plan, a Canal: Panama"

输出

true

更新于: 28-Apr-2020

827 浏览量

启动你的职业

完成课程以获得认证

开始
广告