Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
这道题的做法是将符合数字和字母的符号全部都保留下来,其余的删除。然后再判断是否是回文的。
要注意当字符是空的时候算做true
we need to delete chars that are not numbers or alphabets. and the judge whether it is palindrome
class Solution:
# @param s, a string
# @return a boolean
def judge(self,s):
low=0
high=len(s)-1
while low<high:
if s[low]!=s[high]:
return False
low+=1
high-=1
return True
def isPalindrome(self, s):
i=0
count=0
s=list(s)
while i<len(s):
if (ord(s[i])>=97 and ord(s[i])<=122):
s[i]=chr(ord(s[i])-32)
if (ord(s[i])>=48 and ord(s[i])<=57) or (ord(s[i])>=65 and ord(s[i])<=90):
s[count]=s[i]
count+=1
i+=1
s=s[:count]
return self.judge(s)
本文介绍了一种方法来判断给定的字符串是否为回文,仅考虑字母和数字字符,并忽略大小写。通过过滤非字母数字字符并对剩余字符进行比较来实现。
383

被折叠的 条评论
为什么被折叠?



