zoukankan      html  css  js  c++  java
  • Codeforces Global Round 7 D1. Prefix-Suffix Palindrome (Easy version)(字符串)

    题意:

    取一字符串不相交的前缀和后缀(可为空)构成最长回文串。

    思路:

    先从两边取对称的前后缀,之后再取余下字符串较长的回文前缀或后缀。

    #include <bits/stdc++.h>
    using namespace std;
    bool ok(const string &s,int l,int r){
        while(l<=r&&s[l]==s[r]) ++l,--r;
        return l>r;
    }
    void solve(){
        string s;cin>>s;
        int l=0,r=s.size()-1;
        while(l<r&&s[l]==s[r]) ++l,--r;
        int r2,l2;
        for(r2=r;r2>=l;r2--) if(ok(s,l,r2)) break;
        for(l2=l;l2<=r;l2++) if(ok(s,l2,r)) break;
        cout<<s.substr(0,l)
            <<((r2-l>r-l2)?s.substr(l,r2-l+1):s.substr(l2,r-l2+1))
            <<s.substr(r+1)
            <<"
    ";
    }
    int main()
    {
        int t;cin>>t;
        while(t--)
            solve();
        return 0;
    }
  • 相关阅读:
    string用法
    动手动脑
    你已经创建了多少个对象?
    动手动脑
    课程作业2
    课程作业1
    课程作业2
    《大道至简》第一章观后感
    java虚拟机内存区域
    Gitbook安装使用教程
  • 原文地址:https://www.cnblogs.com/Kanoon/p/12528997.html
Copyright © 2011-2022 走看看