您的位置:首页 > 职场人生

LeetCode(61)-Valid Palindrome

2016-04-15 11:19 351 查看

题目:

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.


思路:

题意:判断一个字符串是不是回文

这道题可以采用双指针,开头first,结尾sed,first++,sed–,first < sed

要求不考虑大小写,全部转化为大写,同时判断字符是不是字母和数字,‘A’,‘Z’,‘0’,‘9’

代码:

public class Solution {
public boolean isPalindrome(String s) {
if(s == null){
return true;
}
char A = 'A';
char Z = 'Z';
char numMin = '0';
char numMax = '9';
s = s.toUpperCase();
int first  = 0;
int sed = s.length() - 1;
while(first < sed){
if((s.charAt(first) < A||s.charAt(first) > Z) && (s.charAt(first) < numMin||s.charAt(first) > numMax)){
first++;
continue;
}
if((s.charAt(sed) < A||s.charAt(sed) > Z) && (s.charAt(sed) < numMin||s.charAt(sed) > numMax)){
sed--;
continue;
}
if(s.charAt(first) == s.charAt(sed)){
first++;
sed--;
}else{
return false;
}
}
return true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息