• 5. 最长回文子串


    这题使用dp,dp[i][j]=1代表字符串中以i下标开始,以j下标结尾的字符串是回文子串,

    当dp[i][j] =dp[i + 1][j - 1],当s[i] == s[j]的时候,很明显,dp[i][i]一定为1,因为一个字符,一定是回文子串。

    class Solution {

        public String longestPalindrome(String s) {

           //习惯把String转为char[]

            char[] ss = s.toCharArray();

           //当前的回文子串长度为1

            String ans = s.substring(0,1);

            int maxLength = 1;

            //初始化dp数组

            int[][] dp = new int[ss.length][ss.length];

            for(int i = 0; i < dp.length; i++) {

                for(int j = 0; j < dp[i].length; j++) {

                    if(i == j) {

                        dp[i][j] = 1;

                    }

                }

            }

            int n = ss.length;

            //动态规划过程,要先遍历列,再遍历行。因为dp[row][colunm]依赖于

            //dp[row + 1][colunm - 1],所以要先遍历列,再遍历行

            for(int colunm = 1; colunm < n; colunm++) {

                for(int row = 0; row < colunm; row++) {

                    if(ss[row] == ss[colunm]) {

                        if(colunm - row <= 2) {

                            dp[row][colunm] = 1;

                        }

                        else {

                            dp[row][colunm] = dp[row + 1][colunm - 1];

                        }

                    }

                    if(dp[row][colunm] == 1) {

                        if(colunm - row + 1 > maxLength) {

                            maxLength = Math.max(maxLength, colunm - row + 1);

                            ans = s.substring(row, colunm + 1);

                        }

                    }

                

                }

            }

            return ans;

        }

    }

     

  • 相关阅读:
    Android开发笔记(一百八十九)利用LAME录制MP3音频
    HyBird App(混合应用)核心原理JSBridge
    【微信小程序】用painter插件生成海报分享朋友圈简单教程
    墨者学院 WordPress 远程命令执行漏洞(CVE-2018-15877)
    CentOS7---Nginx安装并配置虚拟主机
    虹科分享 | 测试与验证复杂的FPGA设计(2)——如何在IP核中执行面向全局的仿真
    【Gitpod】云部署Stable Diffusion并且可以本地访问
    1788_通过CMD命令行启动操作MATLAB
    【C++深陷】之“decltype”
    使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
  • 原文地址:https://blog.csdn.net/qq_16725749/article/details/126250709