您的位置:首页 > 编程语言 > Python开发

LeetCode:验证回文字符串(Python版本)

2019-03-18 09:56 731 查看

LeetCode刷题日记

验证回文字符串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明: 本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: “A man, a plan, a canal: Panama”
输出: true

示例 2:

输入: “race a car”
输出: false

Python代码

class Solution(object):
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""

convert = []  # 提取数字和字母
lows = s.lower()  # 大写转换为小写

for i in lows:
if i.isalpha() or i.isdigit():
convert.append(i)
if len(convert) == 1 or not convert:  # 包含一个字符和空都为true
return True
if len(convert) == 2:
if convert[0] == convert[1]:
return True
for i in range(len(convert) // 2):
if convert[i] == convert[-i - 1]:
if i == len(convert) // 2 - 1:
return True
continue
else:
return False

一开始做这个忘了考虑字符串应该还有数字,考虑不周啊。。

  • 补充:刚看到一个比较好的回文字符串比较方法,贴到这里来:
lst == lst[::-1]

大概意思是这样的:
如果

list = [1 , 2 , 3 , 4 , 5]
,那么
list[ : : -1] = [5 , 4 , 3 , 2 , 1]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: