|
邀请回答
马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
判断一个字符串是否为回文传
- # Created Date:2020/04/23
- # @Author: Lihoon
- # 判断输入的字符串是否为回文串
- class Solution:
- # method#1 直接对比
- def is_palindrome_1(self, s: str) -> bool:
- if len(s) < 2:
- return True
- sList = []
- s = s.lower()
- for word in s:
- if word.isalnum():
- sList.append(word)
- n = len(sList) // 2
- if sList[:n] == sList[::-1][:n]:
- return True
- else:
- return False
-
- # method#2 双指针法
- def is_palindrome_2(self, s:str) -> bool:
- if len(s) < 2:
- return True
- s = s.lower()
- left = 0
- right = len(s) - 1
- while right - left > 0:
- if not s[left].isalnum():
- left += 1
- continue
- if not s[right].isalnum():
- right += 1
- continue
- if s[left] == s[right]:
- left += 1
- right -= 1
- else:
- return False
- return True
-
- func = Solution()
- s = str(input("请输入字符串:"))
- res_1 = func.is_palindrome_1(s)
- res_2 = func.is_palindrome_2(s)
- print("result: {}".format(res_1))
- print("result: {}".format(res_2))
复制代码 测试效果:
- 请输入字符串:test
- result: False
- result: False
复制代码
|
上一篇: 查找数字python实现下一篇: 同字母移位词
|