题目大意:给定一个非空字符串s,您最多可以删除一个字符。判断你是否能把它变成一串“回文”。
题目解析:最开始用的暴力,结果超时了,换用递归
解题代码:
class Solution {
public:
bool validPalindrome(string s) {
int len=s.length();
if(len<=2) return true;
return judge(s,0,len-1,1);
}
private:
bool judge(string s,int l,int r,int cnt){
while(l<=r-1){
if(s[l]!=s[r])
{
if(cnt<=0) return false;
return judge(s,l+1,r,cnt-1)||judge(s,l,r-1,cnt-1);
}
l++;r--;
}
return true;
}
};
~step by step