DP--最长回文子串

目录

题号

思路

    如果一个字符串是回文字符串,则在其两侧分别添加两个字符,若新增的两个字符相等,则新字符串为回文字符串,否则就不是,即当前结果可以从更小的子串是否回文转移而来,故可以使用动态规划

    可以使用两个指针来唯一确定一个字符串,由于要记录任意两个指针代表的字符串是否回文,故使用二维数组来记录i和j,则dp[i][j]为s[i]......s[j]是否为回文字串

    则状态转移为:dp[i][j]=(s[i]==s[j]) && dp[i+1][j-1]

    另外,当前字符串长度为2时,不存在子串,当长度为3时,子串只有一个必定为回文,因此可以作为边界

    最后不断比对更新记录值即可

实现

你可能感兴趣的:(DP--最长回文子串)