华为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, ','))//把输入的字符串存