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

[leetcode]125. Valid Palindrome@Java解题报告

2017-07-26 10:09 525 查看
https://leetcode.com/problems/valid-palindrome/#/description

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.

package go.jacob.day726;

/**
* 125. Valid Palindrome
*
* @author Jacob
*
*/
public class Demo1 {
/*
* 476 / 476 test cases passed. Status: Accepted Runtime: 9 ms
*/
public boolean isPalindrome(String s) {
if (s.isEmpty()) {
return true;
}
//申请两个指针
int left = 0, right = s.length() - 1;
char cLeft, cRight;
while (left < right) {
cLeft = s.charAt(left);
cRight = s.charAt(right);
//Character有现成的isLetterOrDigit()方法,所以不需要自己编写相应函数
if (!Character.isLetterOrDigit(cLeft))
left++;
else if (!Character.isLetterOrDigit(cRight))
right--;
else {
if (Character.toLowerCase(cLeft) != Character.toLowerCase(cRight))
return false;
left++;
right--;
}
}
return true;

}

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