P7672の题解
TJU3025002704 · · 题解
题意
给出
分析
-
我们可以建立一个 string 类型与 int 类型相互映射的 map 来模拟桶,如果其回文串出现次数不为零,则输出结果并结束程序。
-
由于我们计入的是次数,所以并不需要特判本身为回文串的情况,因为在读入原串时已经记录过出现次数了。
代码
#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;
}
}
}