给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
若遇到符号和空格则跳过
1 class Solution { 2 public: 3 bool isPalindrome(string s){ 4 5 int len = s.size(); 6 int low=0,high=len-1; 7 while(low<high){ 8 while(!IsAlphabet(s[low]) && low<high) low++; 9 while(!IsAlphabet(s[high]) && low<high) high--; 10 if((s[low]+32-'a')%32 != (s[high]+32-'a')%32) 11 return false; 12 low++;high--; 13 } 14 return true; 15 } 16 17 bool IsAlphabet(char &a){ 18 if(a>='a'&&a<='z') return true; 19 if(a>='A'&&a<='Z') return true; 20 if(a>='0'&&a<='9') return true; 21 return false; 22 } 23 24 };