Codeforces Round #620 (Div. 2) Longest Palindrome

解题报告:

思路:找出和它串构成回文的串,找出本身是回文的串。

模拟过程:

4 2
oo
ox
xo
xx

和它串构成回文的串:ox xo

本身是回文的串:oo xx(只需要一个,因为串之间不相等)

答案:oxooxo 长度为6。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 100;
string ss[N];
bool check(string x, string y){
    ll len = x.size();
    for(ll i=0; i<len; ++i){
        if(x[i] != y[len-i-1])return 0;
    }
    return 1;
}
int main(){
    ll n, m;
    while(~scanf("%lld%lld", &n, &m)){
        for(ll i=0; i<n; ++i)
            cin >> ss[i];
        string x, invX, temp;
        for(ll i=0; i<n; ++i){
            for(ll j=i; j<n; ++j){
                if(check(ss[i], ss[j]) && i == j)temp = ss[i];
                if(check(ss[i], ss[j]) && i != j)x += ss[i];
            }
        }
        ll len = x.size();
        for(ll i=len-1; i>=0; --i)
            invX += x[i];
        x = x + temp + invX;
        cout << x.size() << endl << x << endl;
    }
    return 0;
}
发布了208 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/jun_____/article/details/104424296