• HDU 1004


    一道map的水题(sb的我用sort超时了)

    // 超时代码

    #include <string>
    #include <algorithm>
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    string a[1010];
    
    int main () {
        int n;
        while (cin >> n && n) {
            memset(a, 0, sizeof(a));
            for (int i = 0; i < n; ++i) {
                string aa;
                cin >> aa;
                a[i] = aa;
            }
            sort(a, a + n);
            int num = 1;
            int temp = 1;
            string ans = a[0];
            string before = a[0];
            // for (int i = 0; i < n; ++i) {
            //     cout << a[i] << "!" << endl;
            // }  
            for (int i = 1; i < n; ++i) {
                if (before == a[i]) {
                    temp ++;
                }
                else {
                    before = a[i];
                    
                }
                if (temp > num) {
                    temp = 1;
                    ans = a[i - 1];
                }
            }
            cout << ans << endl;
        }
    }
    

     //AC代码

    // #include<cstdio>
    // #include<iostream>
    // #include<algorithm>
    // #include<cstring>
    // #include<cstdlib>
    // #include<string>
    // #include<cmath>
    // #include<ctype.h>
    // #include<climits>
    // #include<vector>
    // #include<map>
    // #include<set>
    // #include<queue>
    // #include<functional>
    #include <bits/stdc++.h>
    #define stop while(1);
    #define lowbit(x) (x&(-x))
    #define eps (1e-8)
    #define pi (acos(-1.0))
    #define maxint INT_MAX
    #define maxlong 0xFFFFFFFFFFFFFFFLL 
    using namespace std;
    typedef unsigned long long u64;
    int main()
    {
        int n,i;
        while(cin>>n, n)
        {
            map<string, int>mm;
            map<string, int>::iterator it;
            string ch, ans;
            for (i=0; i < n; i++) {
                cin >> ch;
                mm[ch]++;
            }
            int cnt = 0;
            for(it = mm.begin(); it != mm.end(); it++)
                if(it->second > cnt){
                    cnt = it->second;
                    ans = it->first;
                }    
            cout<<ans<<endl;
        }
    }        
    
    作者:LightAc
    出处:https://www.cnblogs.com/lightac/
    联系:
    Email: dzz@stu.ouc.edu.cn
    QQ: 1171613053
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    代表行为已成为习惯的信号有哪些?
    Java使用JDBC连接Oracle数据库
    JS正则表达式
    java实现内网通信
    纯前端代码实现美团外卖页面
    HTML绘制表格
    教你如何使用谷歌浏览器,亲测可用!
    Java 多线程实现多窗口同时售票简单功能
    实现获取命令行的返回结果
    HTML模仿实现京东登录页面
  • 原文地址:https://www.cnblogs.com/lightac/p/10619074.html
Copyright © 2020-2023  润新知