睡觉觉觉得 2023-08-15 15:14 采纳率: 85.2%
浏览 9
已结题

提交后显示运行超时(关键词-字符串)

描述

如果字符串 S 是字符串 T 的一部分, 那么我们就称 S 是 T 的一个子串

例如

"abc", "bcd", "de" 都是"abcde"的子串.

当然, 字符串 T 本身也是 T 的子串.

如果字符串 S 是一个回文串, 同时又是字符串 T 的一个子串,

那么我们就称 S 是 T 的回文子串 .

输入
每组数据一个字符串, 只包含小写字母,并且字符串长度不超过10000.

输出
请输出字符串的最长回文子串的长度.

输入样例 1

abcde
输出样例 1

1
输入样例 2

cabba
输出样例 2

4


#include<bits/stdc++.h>
using namespace std;

int dp[10000][10000];
int main() {
    string s1;
    int ans=1;
    while(getline(cin,s1)) {
        int n=s1.size();
        for(int i=0; i<n; i++) {
            dp[i][i]=1;
            if(i<n-1) {
                if(s1[i]==s1[i+1]) {
                    dp[i][i+1]=1;
                    ans=2;
                }
            }
        }
        for(int L=3; L<=n; L++) {
            for(int i=0; i+L-1<n; i++) {
                int j=i+L-1;
                if(s1[i]==s1[j]&&dp[i+1][j-1]==1) {
                    dp[i][j]=1;
                    ans=L;
                }
            }
        }
        cout << ans << endl ;
    }
    return 0;
}

这是我的代码,提交后显示运行超时,问怎么修改?

  • 写回答

6条回答 默认 最新

  • CSDN专家-sinJack 2023-08-15 15:42
    关注

    时间复杂度太大了,导致超时,可以用Manacher算法实现
    http://t.csdn.cn/UnZ2g

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月16日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题