C语言 输入一组字符串,输出出现次数最多的字符串及其个数
问题描述:
输入一个整数n(1 <= n <= 100)
然后输入n个字符串(长度 <= 1000 ,字符为小写)
输出出现次数最多的字符串及其个数,用空格隔开。
例如:
输入:
3 aaa bb bb
输出:
bb 2
答
问一下,这里是一个串全部是才可以,还是包含就可以?应该是第一种吧。
答
为大佬献上不一定AC的代码~不对的话大佬可以回复,本蒟蒻继续改~
#include <bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
map<string, int> mp;
while (n--) {
string s; cin >> s;
bool flag = false;
for (map<string, int> :: iterator it = mp.begin(); it != mp.end(); ++it) {
if (it -> first == s) {
++(it -> second); flag = true;
break;
}
}
if (!flag) {
mp.insert(pair<string, int> (s, 1));
}
}
int maxn = 0x800000000; string ma;
for (map<string, int> :: iterator it = mp.begin(); it != mp.end(); ++it) {
if (it -> second > maxn) {
maxn = it -> second; ma = it -> first;
}
}
cout << ma << '\n';
return 0;
}
答
全部 ,必须一模一样
答
ok
答
谢谢您 我就一个学生 刚学不久 还有好多不懂 不过真是太感谢了