验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: "aba"
输出: True
示例 2:
输入: "abca"
输出: True
解释: 你可以删除 c 字符。
解题思路:
双指针指向头尾,相等就继续往中间走,不相等,就判断是左边删一个元素还是
右边删一个元素往中间走,但是需要注意只能发生一次删除,删除后发现任然存
在不相等情况直接 break,最后在最外层返回 false,如果无跳出且直接返回情
况,这说明为 true
bool validPalindrome(char * s){
int len=strlen(s);
int left=0;
int right=len-1;
int posi,posj;
while(left<right)
{
if(s[left]==s[right])
{
left++;
right--;
}
else
{
if((right-left)==1)
return true;
posi=left+1,posj=right;//删除左边的
while(posi<posj)
{
if(s[posi]!=s[posj])
评论0