给定一个非空字符串 s
,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: "aba" 输出: True
示例 2:
输入: "abca" 输出: True 解释: 你可以删除c字符。
注意:
- 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。
class Solution { public: bool validPalindrome(string s) { string tem=s; reverse(tem.begin(),tem.end()); if(tem==s) return 1; else { for(int i=0;i<s.size();i++) { if(tem[i]!=s[i]) { char ch1=tem[i]; char ch2=s[s.size()-i-1]; tem.erase(tem.begin()+i); s.erase(s.end()-i-1); if(s==tem) return 1; else { tem.insert(tem.begin()+i,ch1); s.insert(s.end()-i,ch1); tem.erase(tem.end()-i-1); s.erase(s.begin()+i); if(s==tem) return 1; else return 0; } } } } return 0; } };