给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。


若遇到符号和空格则跳过

 

 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 };

 

posted on 2019-01-19 16:06  柠檬檬檬  阅读(100)  评论(0编辑  收藏  举报