P7672の题解

· · 题解

题意

给出 n 个长度为奇数的字符串,求出一对互为回文的串并输出其长度及中央字符。特别地,如果其本身为一个回文串也计入答案。

分析

代码

#include <string>
#include <map>
#include <iostream>

using namespace std;

map <string,int> a;
int n;
string s[101];

string fz(string sample) //判断回文
{
    for(long long i = 0; i < sample.size() / 2; i++)
    {
        swap(sample[i],sample[sample.size() - i - 1]);
    }

    return sample;
}

int main()
{
    cin>>n;

    for(int i = 1; i <= n; i++)
    {
        cin>>s[i];

        a[s[i]]++; //计入次数
    }

    for(int i = 1; i <= n; i++)
    {
        if(a[fz(s[i])] > 0) //出现次数不为零
        {
            cout<<s[i].size()<<" "<<s[i][s[i].size() / 2];
            return 0;
        }
    }
}