QQ有一个群聊天系统,方便很多人在一起聊天。现在有一个群聊天的历史记录,请你统计一下每个人说了多少。
输入有很多行,每行首先是一个人的昵称,然后一个冒号,一个空格,接着是这个人说过的话,比如: (yamadie: womenlailolba!)。昵称只包含大小写字母,长度不超过10。聊天内容仅包含大小写字母、数字及标点符号(,./|+-=:'[]<>?*%#!()),长度不超过100。
每组数据以“--------”结束,每组数据不超过1000行。
对于每组数据,聊天人名按字典序排序,对于每个聊天人输出其聊天总的字符数。一个人一行。
每组数据末尾包含一行“分隔符”。
Maxx: lalala!
Daidao: hehe!
Moonyu: bieshuohua!
--------
Daidao: 5
Maxx: 7
Moonyu: 11
代码如下:
#include<cstdio> #include<algorithm> #include<string> #include<map> #include<cstring> using namespace std; char s[500], c[500]; int main() { map<string, int > m; while (~ scanf ( "%s" , s)) { if ( strcmp (s, "--------" ) == 0) { map<string, int >::iterator it; it = m.begin(); while (it != m.end()) { printf ( "%s: %d\n" , it->first.c_str(), it->second); it++; } puts ( "--------" ); m.clear(); continue ; } s[ strlen (s) - 1] = 0; scanf ( "%s" , c); string st = s; m[st] += strlen (c); } return 0; } 更多做题心得的详情请查看(记得关注哦)https://mp.weixin.qq.com/s?__biz=MzIyOTM4MDMxNw==&mid=2247483798&idx=1&sn=d4fbd34e50ce4efda39d7710d2dc5dc9&chksm=e842d824df3551320d7f1ed85286b2616aec419f7a852cc5c9c9f270beb237b5e6ca83166162&token=1630951018&lang=zh_CN#rd |