解法一
思路
先將所有字元轉換成小寫形式。利用雙指標對字串進行遍歷,遇到非數字或者字母則移動到下一個。直到指標相遇。
程式碼
class Solution {
public boolean isPalindrome(String s) {
String newStr = s.toLowerCase();
int p1 = 0;
int p2 = s.length() - 1;
char head;
char tail;
while(p1 <= p2) {
head = newStr.charAt(p1);
tail = newStr.charAt(p2);
if (!Chracter.isLetterOrDigit(head)) {
p1++;
}
else if (!Chracter.isLetterOrDigit(tail)) {
p2--;
}
else {
if (head != tail) {
return false;
}
p1++;
p2--;
}
}
return true;
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結