| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
4013ms就差13ms了,我实在不知怎么改了,又不想重写,所以希望大家提点意见,谢谢#include <iostream>
#include <string>
#include <map>
using namespace std;
void convert(string & raw) {
for(int i=0;i<raw.length();i++) {
if(i==3 && raw[i] != '-')
raw.insert(3,"-");
else if(raw[i] == '-') {
//如果是‘-’就删除
raw.erase(i,1);
i--;
} else if(isalpha(raw[i])) {
//否则替换
switch(raw[i]) {
case 'A'...'C':
raw[i]='2';break;
case 'D'...'F':
raw[i]='3';break;
case 'G'...'I':
raw[i]='4';break;
case 'J'...'L':
raw[i]='5';break;
case 'M'...'O':
raw[i]='6';break;
case 'P'...'S':
raw[i]='7';break;
case 'T'...'V':
raw[i]='8';break;
case 'W'...'Y':
raw[i]='9';break;
}
}
}
}
int main() {
int num;
scanf("%d",&num);
map<string,unsigned int> counter;
string str;
for(int i=0;i<num;i++) {
cin>>str;
convert(str);
counter[str]++;
}
bool flag = false;
for(map<string,unsigned int>::iterator it=counter.begin();it!=counter.end();it++) {
if(it->second != 1) {
cout<<it->first<<" "<<it->second<<endl;
flag = true;
}
}
if(!flag)
printf("No duplicates. \n");
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator