# 125. Valid Palindrome

## 1.問題&#x20;

* 判斷一個字串是否屬於回文, 只需要考慮數字及字母, 字母可忽略大小寫

![](https://901207480-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGKoChvN9am4__HCIRK%2F-LNPBGN0yFNSz-lKH-nC%2F-LNPBllwOauFIOaaTliT%2F2018092703.jpg?alt=media\&token=5e9b7131-9ff5-4710-9f02-41398da00185)

## 2.想法 <a href="#id-2-xiang-fa" id="id-2-xiang-fa"></a>

* 提問
  * 確認題意: &#x20;
* function header, parameter
* test input
* 觀察
  * 保留字串中屬於字母及數字的部分, 並從兩側比對
* 說明想法
* 測試計算複雜度

## **3.程式碼** <a href="#id-3-cheng-shi" id="id-3-cheng-shi"></a>

```
class Solution {
public:
    bool isPalindrome(string s) {
        if (s.empty()) {
            return true;
        }
        
        string s2="";
        int size = s.length();
        for (int i = 0; i < size; i++) {
            if (isalpha(s[i]) || isdigit(s[i])) {
                s2.push_back(tolower(s[i]));
            }
        }
        
        for (int i = 0; i < s2.length()/2; i++) {
            if (s2[i] != s2[s2.length() - 1 -i]) {
                return false;
            }
        }
        
        return true;
    }
};
```
