Valid Palindrome

注意string也是一个容器可以运用一些容器的方法

 1 class Solution {
 2 public:
 3     bool isPalindrome(string s) { 
 4         string str;
 5         string::iterator first=s.begin(),end=s.end();
 6          while(first!=end)
 7          {
 8          if(isalnum(*first)) str.push_back(tolower(*first));
 9          first++;
10          }   
11          if(str.size()==0) return true; 
12          first=str.begin();
13          end=str.end();
14          end--;
15          while(first<end)
16           {
17           if(*first!=*end)return false;
18           first++;end--;
19            }
20         return true;
21     }
22 };

网上别人写的简洁版

 1 bool isPalindrome(string s) {
 2     int start=0, end=s.length()-1;
 3     while(start<end) {
 4         if (!isalnum(s[start])) start++;
 5         else if (!isalnum(s[end])) end--;
 6         else {
 7             if (tolower(s[start++])!=tolower(s[end--])) return false;
 8         }
 9     }
10     return true;
11 }
原文地址:https://www.cnblogs.com/daocaorenblog/p/4974908.html