Asher____
Asher&
2021-01-21 13:49
采纳率: 33.3%
浏览 553

C语言 输入一组字符串,输出出现次数最多的字符串及其个数

输入一个整数n(1 <= n <= 100)
然后输入n个字符串(长度 <= 1000 ,字符为小写)

输出出现次数最多的字符串及其个数,用空格隔开。

例如:

输入:

3
aaa
bb
bb

输出:

bb 2
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • yueyuedog
    蒟蒻一枚 2021-01-21 13:55
    已采纳

    问一下,这里是一个串全部是才可以,还是包含就可以?应该是第一种吧。

    点赞 评论
  • yueyuedog
    蒟蒻一枚 2021-01-21 14:17

    为大佬献上不一定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;
    }
    点赞 1 评论
  • Asher____
    Asher& 2021-01-21 14:05

    全部 ,必须一模一样

    点赞 评论
  • yueyuedog
    蒟蒻一枚 2021-01-21 14:08

    ok

    点赞 评论
  • Asher____
    Asher& 2021-01-21 14:21

    谢谢您  我就一个学生  刚学不久 还有好多不懂 不过真是太感谢了

     

    点赞 评论

相关推荐