| ||||||||||
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 |
请教高手,我的程序还要怎么改进才可以?为什么总是超过时间限制#include<vector> #include<iostream> #include<string> using namespace std; string deal(string s){ int t; while((t=s.find('-',0)) != -1) s = s.erase(t,1); for(int k = 0;k < s.length();k++) if(isdigit(s[k]) == 0) switch(s[k]){ case'A'...'C':s[k] = '2';break; case'D'...'F':s[k] = '3';break; case'G'...'I':s[k] = '4';break; case'J'...'L':s[k] = '5';break; case'M'...'O':s[k] = '6';break; case'P'...'S':s[k] = '7';break; case'T'...'V':s[k] = '8';break; case'W'...'Y':s[k] = '9';break; default:break; } return s; } int main(){ int n; cin>>n; string s; vector<string> v; vector<string>::iterator v1; bool isnull = true; if( n == 1) cout<<"No duplicates."<<endl; else{ while(n != 0){ n--; cin>>s; v.push_back(deal(s)); } sort(v.begin(),v.end()); s = *v.begin(); for(v1 = v.begin();v1 != v.end();v1++) if(*v1 == s) {n++; if(v1+1 == v.end()) if( n >1) {cout<<s.insert(3,1,'-')<<" "<<n<<endl; isnull = false;break;} } else{ if( n >1) {cout<<s.insert(3,1,'-')<<" "<<n<<endl; isnull = false;} s = *v1; n = 1;} if(isnull) cout<<"No duplicates."<<endl;} return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator