字符串分隔--map找到value的最大值并输出对应key

华为4.16日笔试给每个人投票;输入字符串,以英文逗号分隔开,首字母大写;输出投票最高的人名字,如果重复的话输出字母排在前面的或者较短的;样例:输入:"Tom,Luck,Tom,Pop"输出:Tom步骤:①根据逗号把名字分隔开,即分割成字符子串; ------ 分隔带有','的字符串 ②把子串用hash 存起来,比较得到出现次数最多的子串关键:①con...
摘要由CSDN通过智能技术生成

华为4.16日笔试

给每个人投票;输入字符串,以英文逗号分隔开,首字母大写;
输出投票最高的人名字,如果重复的话输出字母排在前面的或者较短的;
样例:
输入:"Tom,Luck,Tom,Pop"
输出:Tom

步骤:①根据逗号把名字分隔开,即分割成字符子串;  ------ 分隔带有','的字符串
          ②把子串用hash 存起来,比较得到出现次数最多的子串
 

关键:①const char *a = ss.c_str();  要想把字符串和字符比较,需要转换成char *类型

           ②找到最大的value之后怎么把对应的key输出。

这里没写特殊情况的判断。

#include <vector>
#include <sstream>
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;

bool comp(string i, string j)
{ 
	return i < j; 
}
int main()
{
	map<string, int> hash;
	string ss,tem;
	cin >> ss;

	//const char *a = ss.c_str();  要想把字符串和字符比较,需要转换成char *类型

	stringstream sstr(ss);//输入流把字符串ss输入存储
	while (getline(sstr, tem, ','))//把输入的字符串存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值