題目: LeetCode - 125. Valid Palindrome
題目說明
給一個 String,檢查此字串是否為回文。
解題思路
使用雙指針即可,使用 isalnum() 判斷字符是否為數字或英文字母,使用 tolower() 將字母轉為小寫。
參考解法
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 
 | static auto __ = []()
 {
 std::ios_base::sync_with_stdio(false);
 std::cin.tie(nullptr);
 std::cout.tie(nullptr);
 return 0;
 }();
 class Solution {
 public:
 bool isPalindrome(string s) {
 int i = 0, j = s.size() - 1;
 while(i <= j)
 {
 if(isalnum(s[i]) && isalnum(s[j]))
 {
 if(tolower(s[i]) != tolower(s[j]))
 return false;
 ++i, --j;
 }
 else
 {
 if(!isalnum(s[i]))
 ++i;
 if(!isalnum(s[j]))
 --j;
 }
 }
 return true;
 }
 };
 
 |