125. Valid Palindrome - Easy
前往題目
之前寫的Medium文章
思路
2 pointers
- 遇到不是
letter
或digit
的直接移動指針然後進到下一個循環 - 遇到是的話直接判斷是否相同,注意
letter
的話要轉成lowercase
或uppercase
Code
class Solution {
public boolean isPalindrome(String s) {
int l = 0, r = s.length() - 1;
while (l < r) {
char left = s.charAt(l);
char right = s.charAt(r);
// Check
if (!Character.isLetterOrDigit(left)) {
++l;
} else if (!Character.isLetterOrDigit(right)) {
--r;
} else { // Is alphanumeric
if (Character.toLowerCase(left) != Character.toLowerCase(right)) {
return false;
}
++l;
--r;
}
}
return true;
}
private boolean isAlphabet(char c) {
return ('a' <= c && c <= 'z') ||
('A' <= c && c <= 'Z');
}
}
125. Valid Palindrome - Easy
https://f88083.github.io/2024/01/30/125-Valid-Palindrome-Easy/