牛客热题:最长回文子串

📟作者主页:慢热的陕西人

🌴专栏链接:力扣刷题日记

📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言

在这里插入图片描述

牛客热题:最长回文子串

题目链接

最长回文子串_牛客题霸_牛客网 (nowcoder.com)

方法一:动态规划

思路

①状态表示:

d p [ i ] [ j ] dp[i][j] dp[i][j]表示以A[i],A[j]为头尾的字符串是否是回文字符串的状态

②状态转移方程:

当A[i] 和 A[j] 相等的情况下:

d p [ i ] [ j ] = d p [ i + 1 ] [ j − 1 ] dp[i][j] = dp[i + 1][j - 1] dp[i][j]=dp[i+1][j1]

③初始化:

循环内部会直接对长度为1的区间直接修改为状态为true

④填表顺序:

最外层:字符串的长度从短到长

内部:i,也就是起始位置从左到右即可

⑤返回值:

在循环的过程中, d p [ i ] [ j ] dp[i][j] dp[i][j]为真的话就更新当前的 r e s = l e n + 1 res = len + 1 res=len+1;

最后返回res即可

代码

int getLongestPalindrome(string A) 
    {
        int n = A.size();
        int res = 0;
        vector<vector<bool>> dp(n, vector<bool>(n, false));

        for(int len = 0; len < n; ++len)
        {
            for(int i = 0; i < n - len; ++i)
            {
                int j = i + len;

                if(A[i] == A[j])
                {
                    if(len <= 1)
                    {
                        dp[i][j] = true;
                    }
                    else 
                    {
                        dp[i][j] = dp[i + 1][j - 1];
                    }

                    if(dp[i][j])
                    {
                        res = len + 1;
                    }
                }
            }
        }

        return res;
    }

复杂度

时间复杂度: O ( N 2 ) O(N ^ 2) O(N2),首先枚举从0到n - 1 的长度的字符串

空间复杂度: O ( N 2 ) O(N^2) O(N2),利用了额外的dp数组,来存储对应的状态

相关推荐

  1. LeetCodeHot100 -

    2024-06-17 23:22:04       41 阅读
  2. leetcode第5

    2024-06-17 23:22:04       25 阅读
  3. 5.

    2024-06-17 23:22:04       49 阅读
  4. 5.

    2024-06-17 23:22:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 23:22:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 23:22:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 23:22:04       82 阅读
  4. Python语言-面向对象

    2024-06-17 23:22:04       91 阅读

热门阅读

  1. PCA 在图像分析上的应用

    2024-06-17 23:22:04       28 阅读
  2. 第二章 - 第1节- 逻辑运算 -课后习题

    2024-06-17 23:22:04       32 阅读
  3. 用最简单的方式理解函数重载

    2024-06-17 23:22:04       31 阅读
  4. 【Python高级编程】OpenCV来处理视频数据

    2024-06-17 23:22:04       25 阅读
  5. LeetCode //C - 171. Excel Sheet Column Number

    2024-06-17 23:22:04       26 阅读
  6. kotlin `FloatArray` 和 `Array<Float>`

    2024-06-17 23:22:04       23 阅读
  7. CSS 列表样式(ul)全面解析

    2024-06-17 23:22:04       31 阅读
  8. c++_0基础_讲解8 函数

    2024-06-17 23:22:04       30 阅读
  9. 模块一:登录模块

    2024-06-17 23:22:04       29 阅读
  10. python实践笔记(二): 类和对象

    2024-06-17 23:22:04       27 阅读