来讨论这个月《程序员》杂志的题目
我第一次买《程序员》来看,就看见这期的题目挺有意思的。
所以拿到这来讨论讨论算法问题。
问题我在这抄一遍吧:
输入:输入数据有多组,第一行是一个整数N,表示下面有N组数据:然后是一个空行接下来分别是N组输入数据,每组输入数据都遵循后面将提到的格式并且每两组之间用一个空行隔开.每组输入数据的第一行包含N个用空格隔开的ID.接下来的若干行是FBI从日志文件和截获的数据包中获得的事件信息.每一行开头是一个字母E,L或M,分别代表"进入","退出","改送信息"这三个事件;然后是一个空格;然后是一个字符串;如果事件是E或L,则该字符串表示是恐怖主义分子的真名,如果M则代表是恐怖主义分子所使用的ID,最后用单独占用一行的一个Q表示所有事件的结束.恐怖分子的真实姓名和ID都由小写字母组成且长度不超过20个字母.所有恐怖分子的姓名都肢出现在事件中,且与ID一一对应的.
输出:每组输入数据都对应一组N行的输出.输出的每一行首先是一个字符串表示恐怖分子的真实姓名,然后是一个冒号":",接着是一个字符串,表示该恐怖分子的ID.如果不能确定其使用的ID,则用三个问号代替.
样例输入:
2
(空行)
7
bigman mangler sinbad fatman bigcheese frenchie capodicapo
E mugsy
E knuckles
M bigman
M mangler
L mugsy
E clyde
E bonnie
M bigman
M fatman
M frenchie
L clyde
M fatman
E ugati
M sinbad
E moriarty
E booth
Q
(空行)
2
starfish bill
E huhaixing
E gates
L huhaixing
M bill
Q
(空行)\\以下是输出
bonnie:fatman
booth:???
clyde:frenchie
knuckles:bigman
moriarty:???
mugsy:mangler
ugati:sinbad
(空行)
gates:bill
huhaixing:starfish