您的位置:首页 > 其它

leetcode(valid-palindrome)判断字符串是否是对称

2016-07-06 20:22 211 查看
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 {
public boolean isPalindrome(String s) {
if(s==null||s.length()==0||s.length()==1) return true;
int i=0,j=s.length()-1;
char left,right;

while(i<j){

left=s.charAt(i);
right=s.charAt(j);

while(i<j&&!((left>='a'&&left<='z')||(left>='A'&&left<='Z')||(left>='0'&&left<='9'))){
i++;
left=s.charAt(i);

}
if(left>='a'&&left<='z') left=(char) ('A'-'a'+left);

while(i<j&&!((right>='a'&&right<='z')||(right>='A'&&right<='Z')||(right>='0'&&right<='9'))){
j--;
right=s.charAt(j);
}
if(right>='a'&&right<='z') right=(char) ('A'-'a'+right);

if(left-right==0){
i++; j--;

}else return false;
}
return true;

}

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