leetcode-680. 验证回文字符串 Ⅱ
这题不用双指针也挺简
class Solution { public: bool validPalindrome(string s) { int i = 0; int j = s.size()-1; int cnt = 0; while(i<j){ if(s[i]!=s[j]){ return isbool(s, i+1,j)||isbool(s, i,j-1); } i++; j--; } return true; } bool isbool(string s, int i, int j){ while(i<j){ // 为什么里面不再次递归呢,因为validPalindrome已经一次不等了,删了一个元素 // 这里再次不等,肯定不是回文了,题目要求是最多删除一个元素。 // 如果再次递归就意味着不只删除一个元素 if(s[i]!=s[j]) return false; i++; j--; } return true; } };