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 |
超时,是为什么??用stl的map 感觉写起来好简单,可是就是超时!#include<iostream> #include<map> #include<string> #include<stdio.h> using namespace std; int main(){ int num; cin>>num; map<string,int> out; map<char,char> c2d; c2d['A']='2'; c2d['B']='2';//map使用下标自动添加元素 c2d['C']='2'; c2d['D']='3'; c2d['E']='3'; c2d['F']='3'; c2d['G']='4'; c2d['H']='4'; c2d['I']='4'; c2d['J']='5'; c2d['K']='5'; c2d['L']='5'; c2d['M']='6'; c2d['N']='6'; c2d['O']='6'; c2d['P']='7'; c2d['R']='7'; c2d['S']='7'; c2d['T']='8'; c2d['U']='8'; c2d['V']='8'; c2d['W']='9'; c2d['X']='9'; c2d['Y']='9'; string in; while(num>0){ cin>>in; string id; for(int i=0;i<in.size();i++){ if(in[i]>='A'&&in[i]<='Z'&&in[i]!='Q'&&in[i]!='Z'){ id.push_back(c2d[in[i]]); } else if(in[i]>='0'&&in[i]<='9'){ id.push_back(in[i]);///string可以使用push_back();也可以直接用'+' string类中重载了加法符号 } else; } out[id]++; num--; } ///// 注意这里map类型的遍历方式 for(map<string,int>::const_iterator iter=out.begin();iter!=out.end();iter++){///注意这里要用iter!=out.end();准确来讲地址最好不要比较大小! if(iter->second>=2) { for(int i=0;i<3;i++){ printf("%c",iter->first[i]); } printf("-"); for(int i=3;i<iter->first.size();i++){ //cout<<iter->first[i]; printf("%c",iter->first[i]); } printf(" %d\n",iter->second); } } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator