回文,先提取有效字符,之后进行前后项匹配
1 class Solution { 2 public: 3 bool isPalindrome(string s) { 4 vector<char> change; 5 int size=s.length(); 6 if(size==0) 7 return true; 8 for(int i=0;i<size;i++) 9 { 10 char c=s.at(i); 11 if((c>='a'&&c<='z')||c>='0'&&c<='9') 12 { 13 change.push_back(c); 14 } 15 if(c>='A'&&c<='Z') 16 { 17 c+=('a'-'A'); 18 change.push_back(c); 19 } 20 } 21 int flag=1; 22 size=change.size(); 23 for(int i=0;i<size/2;i++) 24 { 25 if(change[i]!=change[size-1-i]) 26 { 27 flag=0; 28 break; 29 } 30 } 31 if(flag==1) 32 return true; 33 return false; 34 } 35 };