查看: 1126|回复: 0
收起左侧

[资料分享] 回文字符串验证

Lihoon 2020-4-23 19:59:15 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
判断一个字符串是否为回文传
  1. # Created Date:2020/04/23
  2. # @Author: Lihoon
  3. # 判断输入的字符串是否为回文串

  4. class Solution:
  5.         # method#1 直接对比
  6.         def is_palindrome_1(self, s: str) -> bool:
  7.                 if len(s) < 2:
  8.                         return True
  9.                 sList = []
  10.                 s = s.lower()
  11.                 for word in s:
  12.                         if word.isalnum():
  13.                                 sList.append(word)
  14.                 n = len(sList) // 2
  15.                 if sList[:n] == sList[::-1][:n]:
  16.                         return True
  17.                 else:
  18.                         return False
  19.         
  20.         # method#2 双指针法
  21.         def is_palindrome_2(self, s:str) -> bool:
  22.                 if len(s) < 2:
  23.                         return True
  24.                 s = s.lower()
  25.                 left = 0
  26.                 right = len(s) - 1
  27.                 while right - left > 0:
  28.                         if not s[left].isalnum():
  29.                                 left += 1
  30.                                 continue
  31.                         if not s[right].isalnum():
  32.                                 right += 1
  33.                                 continue
  34.                         if s[left] == s[right]:
  35.                                 left += 1
  36.                                 right -= 1
  37.                         else:
  38.                                 return False
  39.                 return True

  40.                
  41. func = Solution()
  42. s = str(input("请输入字符串:"))
  43. res_1 = func.is_palindrome_1(s)
  44. res_2 = func.is_palindrome_2(s)

  45. print("result: {}".format(res_1))
  46. print("result: {}".format(res_2))
复制代码
测试效果:
  1. python is_panlidrome.py
复制代码
  1. <blockquote>请输入字符串:level
复制代码
  1. 请输入字符串:test
  2. result: False
  3. result: False
复制代码









上一篇:查找数字python实现
下一篇:同字母移位词

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部