Python中的有效回文

假设我们有一个包含字母数字值和符号的字符串。也有小写和大写字母。我们仅通过考虑小写字母(将大写字母转换为小写字母)来检查字符串是否形成回文,其他符号(例如逗号,空格)将被忽略。

假设字符串像“一个人,一个计划,一条运河:巴拿马”,那么考虑这些规则,它将是“ amanaplanacanalpanama”。这是回文。

为了解决这个问题,请遵循以下步骤-

  • 定义x =“”

  • 读取str中的每个字符c-

    • 如果c是小写字母或数字,则将c附加到x

    • 否则c是一个大写字母,然后将其简单地转换为小写并在x之后追加

  • 如果x是回文,则返回True,否则返回False

示例

让我们看一下实现以获得更好的理解

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