• 51nod 1088 最长回文子串 【中心拓展法/输出长度和路径】


    1088 最长回文子串

    基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
    收藏
    关注
    回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。
    输入一个字符串Str,输出Str里最长回文子串的长度。
    Input
    输入Str(Str的长度 <= 1000)
    Output
    输出最长回文子串的长度L。
    Input示例
    daabaac
    Output示例
    5

    [代码]:
    #include<bits/stdc++.h>
    
    using namespace std;
    #define N 550
    int mp[N][N];
    int main()
    {
        string s;
        cin>>s;
        int n=s.size();
        int res=0;
    
        for(int i=0; i<n; i++){
    
            for(int j=0;(i-j)>=0&&(i+j)<n; j++){
                if(s[i-j]!=s[i+j]) break;
                res=max(res,2*j+1);
            }
    
            for(int j=0;(i-j)>=0&&(i+j+1)<n; j++){
                if(s[i-j]!=s[i+j+1]) break;
                res=max(res,2*j+2);
            }
        }
        printf("%d
    ",res);
    }
    输出长度
    #include<bits/stdc++.h>
    #include<iostream>
    using namespace std;
    #define N 5050
    int main()
    {
        string s;
        int pos[2000];
        cin>>s;
        int res = 0, st=0, ed=0;
        int n = s.size();
        for(int i=0;i<n;++i)
                pos[i]=i;
        for(int i=0; i<n; i++) {
            for(int j=0 ;(i-j)>=0&&(i+j)<n ;j++) {
                if(s[i-j]!=s[i+j]) break;
                if(2*j+1>res){
                    res=2*j+1;
                    st=pos[i-j];
                    ed=pos[i+j];
                }
            }
    
            for(int j=0 ;(i-j)>=0&&(i+j+1)<n ;j++) {
                if(s[i-j]!=s[i+j+1]) break;
                if(2*j+2>res){
                    res=2*j+2;
                    st=pos[i-j];
                    ed=pos[i+j+1];
                }
            }
        }
        for(int i=st; i<=ed; i++)
            cout<<s[i];
        cout<<endl;
        return 0;
    }
    输出子串
  • 相关阅读:
    接口的上溯造型——《Thinking in Java》随笔015
    数据库
    小结
    异常及String
    多态&接口
    继承&封装
    Java 类 对象 包
    Java 方法的应用
    Java数组的运用
    Java代码运用及算法思路养成——用*号输出形状
  • 原文地址:https://www.cnblogs.com/Roni-i/p/8625640.html
Copyright © 2020-2023  润新知