注意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 }