1 条题解
-
0
自动搬运
来自洛谷,原作者为

落河之秋
我仍然在 无人问津的阴雨霉湿之地 和着雨音 唱着没有听众的歌曲搬运于
2025-08-24 22:32:04,当前版本为作者最后更新于2021-07-19 16:26:24,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题意
给出 个长度为奇数的字符串,求出一对互为回文的串并输出其长度及中央字符。特别地,如果其本身为一个回文串也计入答案。
分析
-
我们可以建立一个 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; } } } -
- 1
信息
- ID
- 6865
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者