题目描述
一串由长长的数字组成的电话号码通常很难记忆。为了方便记忆,有种方法是用单词来方便记忆。例如用“Three Tens”来记忆电话3-10-10-10。
电话号码的标准形式是七位数字,中间用连字号分成前三个和后四个数字(例如:888-1200)。电话号码可以用字母来表示。以下是字母与数字的对应:
A,B和C对应2
D,E和F对应3
G,H和I对应4
J,K和L对应5
M,N和O对应6
P,R和S对应7
T,U和V对应8
W,X和Y对应9
你会发现其中没有字母Q和Z。电话中的连字号是可以忽略。例如TUT-GLOP的标准形式是888-4567,310-GINO的标准形式是310-4466,3-10-10-10的标准形式是310-1010。
如果两个电话号码的标准形式是一样的,那么这两个电话号码就是一样的。
现在有一本电话簿,请从中找出哪些电话号码是重复的。
输入输出格式
输入格式:
第一行一个正整数N,表示有多少个电话号码。
以下N行,每行一个电话号码,电话号码由数字、大写字母(除Q、Z)和连字符组成。电话号码长度不会超过1000。所有电话号码都合法。
输出格式:
将所有重复的电话号码按字典序以标准形式输出,并且在每个电话号码后跟一个整数,表示该电话号码共出现了多少次,电话号码和整数间用一个空格隔开。不要输出多余空行。
如果没有重复的电话号码,则输出:No duplicates.
输入输出样例
输入样例#1:
3TUT-GLOP3-10-10-10310-1010
说明
【数据范围】
对于30%的数据,N<=20。
对于50%的数据,N<=10000。
对于100%的数据,N<=100000。
不用开map
/*用一个map把所有的字母表示的数字存起来,0和1题目中没说,但也要表示。一个 类型的map表示a这个字符串出现的次数。把每个读入的字符串转化为标准形式存起来,如果有出现次数超过两次的,存起来,答案数++。最后将答案按字典序排序输出。 (如果map的初始化写到了函数里,别忘记调用!!!,一开始没调用,全输出的空格,调了半个多小时)。*/ #include #include #include #include #include #include
map TLE一个点 /*用一个map把所有的字母表示的数字存起来,0和1题目中没说,但也要表示。一个 类型的map表示a这个字符串出现的次数。把每个读入的字符串转化为标准形式存起来,如果有出现次数超过两次的,存起来,答案数++。最后将答案按字典序排序输出。 (如果map的初始化写到了函数里,别忘记调用!!!,一开始调用,全输出的空格,调了半个多小时)。*/ #include #include #include #include #include #include
char数组AC