回文正确性有效性证明

Leetcode Description

给出一个长度为n的字符串,您必须确定该字符串是否是回文,但是最多可以删除一个字符。

例如:“ aba”是回文。
“ abca”也是有效的,因为我们可以删除“ b”或“ c”以获得回文。

我已经看到许多采用以下方法的解决方案。

  

在分别将两个指针leftright初始化为字符串的开始和结束字符的情况下,只要保持同步,递增left和递减right的过程就保持同步。 leftright指向的两个字符相等。

     

我们第一次遇到leftright所指向的字符之间的不匹配,并说它们具体是索引ij时,我们只是检查是否string[i..j-1]string[i+1..j]是回文。

我很清楚这是为什么工作,但是令我困扰的是我们第一次看到不匹配时所采取的方法的方向。

假定我们不关心时间效率,而只关注正确性,那么我看不到是什么阻止了我们尝试删除string[0..i-1]string[j+1..n-1]中的字符,并试图查看是否生成了整个字符串可以成为回文症吗?
更具体地说,如果我们采用第一种方法,并且发现string[i..j-1]string[i+1..j]都不是回文,那么阻止我们回溯到我描述的第二种方法,并查看是否从{{1}中删除字符}或string[0..i-1]会产生回文?

我们可以从数学上证明为什么这种方法无用或完全不正确吗?

wiyalala 回答:回文正确性有效性证明

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3084452.html

大家都在问