整理字串+測驗回文
class Solution {
public:
bool isPalindrome(string s) {
string s_noSpace;
// 去除空格
for(char c:s){
if(isalnum(c)) s_noSpace+=tolower(c);
}
// 檢查回文
string s_reverse = s_noSpace;
reverse(s_reverse.begin(), s_reverse.end());
return s_reverse == s_noSpace;
}
};
class Solution {
public:
bool isPalindrome(string s) {
int n = s.size();
int left = 0, right = n-1;
while(left<right){
// 處理左指針不符規範(不是數值,就繼續縮)
while(left<right && !isalnum(s[left])) left++;
// 處理右指針不符規範
while(left<right && !isalnum(s[right])) right--;
// 檢查回文
if(left<right){
if (tolower(s[left]) != tolower(s[right])) return false;
left++;
right--;
}
}
return true;
}
};