您的位置:首页 > 其它

[leedcode 125] Valid Palindrome

2015-07-24 20:35 113 查看
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 the purpose of this problem, we define empty string as valid palindrome.

public class Solution {
//注意题目不考虑大小写,因此需要利用toLowerCase进行转换,定义一个函数判断字符是否是数值或字符,从头到尾开始向中间遍历
public boolean isPalindrome(String s) {
if(s==null||s.length()<=0) return true;
s=s.toLowerCase();
int left=0;
int right=s.length()-1;
while(left<right){
while(left<right&&!isValid(s.charAt(left))){
left++;
}
while(left<right&&!isValid(s.charAt(right))){
right--;
}
if(left<right&&s.charAt(left)!=s.charAt(right))return false;
left++;
right--;

}
return true;
}
public boolean isValid(char a){
if(a>='a'&&a<='z'||a>='0'&&a<='9')return true;
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: