描述
Given a non-empty string s
, you may delete at most one character. Judge whether you can make it a palindrome.
The string will only contain lowercase characters a-z. The maximum length of the string is 50000.
您在真实的面试中是否遇到过这个题? 是
样例
Given s = "aba"
return true
Given s = "abca"
return true
// delete c
我采取的办法是从两边向中间逐个对比,给与一次再向中间靠近的机会。
class Solution {
public:
/**
* @param s: a string
* @return: nothing
*/
bool validPalindrome(string &s) {
// Write your code here
int begin=0;
int end=s.length()-1;
int k=1;
while(begin<end){
if(s[begin]!=s[end]){
if(s[begin+k]==s[end]) begin++;
else if(s[begin]==s[end-k]) end--;
else return false;
k--;
}
begin++;
end--;
}
return true;
}
};