美文网首页
最长回文子串

最长回文子串

作者: Talk1sCheap | 来源:发表于2021-03-08 14:29 被阅读0次

    这里最重要的是:dp数组对应的就是[i,j]是否为回文,这个性质很适合做母题

    dp

    思路真的很简单:a--b如果是,那么a+1--b-1也会是
    所以这就是状态转移
    另外再需要考虑的就是边界和遍历方式

    1. i+1,j-1要有效,也就是起码2,必须j-1>i+1
    2. 在二维中是左下,所以按列来遍历会比较好
    升级 分隔的最小次数

    思路也不难
    f[i]代表i需要的次数
    0-----j-----i
    可以发现,只要j+1 到 i为回文串 ,那么就有 f[i]=f[j]+1;
    这里的关键是:我们根本不关心f[j]怎么来的

    if(0到i回文)  f[i]=0
    for(j从0到i-1){
      if(j+1到i回文){
          f[i]=f[j]+1;
      }
    }
    

    dp 感悟:只注重怎么从小的得到dp[i],而不要注重条件
    这里的if中用到了i+1,看着有点吓人

    中心扩展

    相关文章

      网友评论

          本文标题:最长回文子串

          本文链接:https://www.haomeiwen.com/subject/cmmpqltx.html