pku1002

来源:互联网 发布:云智能网络 编辑:程序博客网 时间:2024/06/01 07:20


题目比较水,但是可以练练手,这里用map模板来实现重复计数,也可以用hash实现,用string的hash算法,就是太麻烦了,,

#include<iostream>#include<string>#include<map>using namespace std;char mapstr[] = "22233344455566670778889990";int main(){int n;map<string,int> newmap;cin>>n;while(n > 0){string str;string inputstr;cin>>inputstr;for(int i =0;i<inputstr.length();i++){if(inputstr[i] == '-')continue;else if( inputstr[i]-'A' >=0 && inputstr[i]-'A' <=25)str += mapstr[inputstr[i]-'A'];elsestr += inputstr[i];}str.insert(3,"-");newmap[str]++;n--;}map<string,int>::iterator iter = newmap.begin();int total =0;while(iter != newmap.end()){if(iter->second >1){cout<<iter->first<<" "<<iter->second<<endl;total++;}iter++;}if(total == 0)cout<<"No duplicates."<<endl;return 0;}

0 0
原创粉丝点击