zoukankan      html  css  js  c++  java
  • 9.7 腾讯笔试

    t3

    题目大意:给n个字符串,然后统计出,出现次数前k多和前k少的(出现次数不能为0)的字符串
    输入:
    第一行n和k
    下面n行,每行一个字符串

    解题思路:用map存一下字符串出现次数,然后都拿到结构体里面,然后结构体排序,注意当次数一样的时候,要按字典序排序

    具体看代码

    #include<bits/stdc++.h>
    #define int long long
    #define fi first
    #define se second
    using namespace std;
    const int N = 3e5 + 10;
    string s[N];
    map<string , int>ans;
    struct degfe
    {
    	int cnt;
    	string s;
    	bool operator < (const degfe & a) const
    	{
    		if(cnt==a.cnt)
    			return s<a.s;
    		return cnt < a.cnt;
    	}
    } e1[N];
    bool cans(degfe a , degfe b)
    {
    	if(a.cnt==b.cnt)
    		return a.s<b.s;
    	return a.cnt > b.cnt;
    }
    signed main()
    {
    	int n , k;
    	cin >> n >> k;
    	for(int i=1; i<=n; i++)
    	{
    		string str;
    		cin >> str;
    		ans[str] ++ ;
    	}
    	int cnt = 0;
    	for(auto i : ans)
    		e1[++ cnt] = degfe {i.se , i.fi};
    	sort(e1 + 1 , e1 + 1 + cnt , cans);
    	for(int i=1; i<=k; i++)
    	{
    		cout << e1[i].s << " " << e1[i].cnt << endl;
    	}
    	sort(e1 + 1 , e1 + 1 + cnt);
    	for(int i=1; i<=k; i++)
    	{
    		cout << e1[i].s << " " << e1[i].cnt << endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    Jenkins安装(一)
    Ansible(一) 安装与简单测试
    zabbix中文乱码
    mysql5.7免密登录
    Zabbix 监控 Nginx 模板
    zabbix通过snmp监控主机
    zabbix5.0+grafana 使用脚本安装
    Eth-trunk配置-LACP模式
    Eth-Trunk配置-手动模式
    文件系统简单理解与实操(ext4)
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/13626229.html
Copyright © 2011-2022 走看看