leetcode解题
This commit is contained in:
40
125.valid-palindrome.java
Normal file
40
125.valid-palindrome.java
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* @lc app=leetcode id=125 lang=java
|
||||
*
|
||||
* [125] Valid Palindrome
|
||||
*/
|
||||
|
||||
// @lc code=start
|
||||
class Solution {
|
||||
public boolean isPalindrome(String s) {
|
||||
int i = 0, j = s.length()-1;
|
||||
boolean r = true;
|
||||
while(i < j) {
|
||||
while(i<j && !isAlphanumberic(s.charAt(i))) {
|
||||
i++;
|
||||
}
|
||||
while(i<j && !isAlphanumberic(s.charAt(j))) {
|
||||
j--;
|
||||
}
|
||||
if(i==j) {
|
||||
break;
|
||||
}
|
||||
if(!isSameLeterIgnoreCase(s.charAt(i), s.charAt(j))) {
|
||||
r = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
private boolean isAlphanumberic(char c) {
|
||||
return c >= 'a' && c <= 'z' ||
|
||||
c >= 'A' && c <= 'Z' || c >='0' && c <= '9';
|
||||
}
|
||||
|
||||
private boolean isSameLeterIgnoreCase(char a, char b) {
|
||||
return a == b || a - b == 'z' - 'a' || a - b == 'a' - 'z';
|
||||
}
|
||||
}
|
||||
// @lc code=end
|
||||
|
||||
Reference in New Issue
Block a user