| ||||||||||
| 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就被系统杀掉了In Reply To:4013ms就差13ms了,我实在不知怎么改了,又不想重写,所以希望大家提点意见,谢谢 Posted by:xieyixiewen2 at 2007-08-26 11:32:34 > #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