[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,
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;
}
}
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;
}
}
相关文章推荐
- [leetcode]151. Reverse Words in a String@Java解题报告
- [leetcode]50. Pow(x, n)@Java解题报告
- [leetcode]215. Kth Largest Element in an Array@Java解题报告
- [leetcode]438. Find All Anagrams in a String@Java解题报告
- [leetcode]145. Binary Tree Postorder Traversal@Java解题报告
- 【LeetCode】Merge Two Sorted Lists 解题报告(Java & Python)
- [leetcode]142. Linked List Cycle II@Java解题报告
- [leetcode]68. Text Justification@Java解题报告
- [leetcode]114. Flatten Binary Tree to Linked List@Java解题报告
- [leetcode]133. Clone Graph@Java解题报告
- [leetcode]209. Minimum Size Subarray Sum@Java解题报告
- [leetcode]126. Word LadderII@Java解题报告
- 【LeetCode】Linked List Cycle 解题报告(Java & Python)
- [leetcode]19. Remove Nth Node From End of List@Java解题报告
- [leetcode]46. Permutations@Java解题报告
- Maximum Depth of Binary Tree | leetcode 104 【Java解题报告】
- Leetcode 349. Intersection of Two Arrays 解题报告 Python Java
- [leetcode]107. Binary Tree Level Order Traversal II@Java解题报告
- [leetcode]47. Permutations II@Java解题报告
- [leetcode]60. Permutation Sequence@Java解题报告