1 static int wing=[]()
 2 {
 3     std::ios::sync_with_stdio(false);
 4     cin.tie(NULL);
 5     return 0;
 6 }();
 7 
 8 class Solution 
 9 {
10 public:
11     bool validPalindrome(string s) 
12     {
13         int len=s.length();
14         int left=0,right=len-1;
15         while(left<right)
16         {
17             if(s[left]!=s[right])
18                 return judgedor(left+1,right,s)||judgedor(left,right-1,s);
19             left++;
20             right--;
21         }
22         return true;
23     }
24     
25     bool judgedor(int l,int r,string &s)
26     {
27         while(l<r)
28         {
29             if(s[l++]!=s[r--])
30                 return false;
31         }
32         return true;
33     }
34 };

两端指针,若字符不相等,则跳过左边或者右边继续判定

posted on 2018-06-09 14:51  高数考了59  阅读(137)  评论(0)    收藏  举报