敲几行bug,在提瓦特玩一会,再敲几行bug,良性循环
【输出形式】
对于出现超过一次的每个号码,按照标准格式及字典序每个输出一行,然后是空格,接着输出出现的次数。只出现1次的电话号码不输出。
#include<iostream>
#include<algorithm>
using namespace std;
struct num
{
string number;
int times=1;
};
int finds(num* n,string s,int c)
{
for(int i=0;i<c;i++)
if(s==n[i].number) return i;
return -1;
}
bool cmp(num x,num y)
{
return x.number<y.number;
}
int main()
{
int c=0,n;cin>>n;num x[n];
for(int i=0;i<n;i++)
{
string temp="",s;cin>>s;
for(int j=0;j<(int)s.length();j++)
{
if(s[j]=='A'||s[j]=='B'||s[j]=='C') temp+='2';
if(s[j]=='D'||s[j]=='E'||s[j]=='F') temp+='3';
if(s[j]=='G'||s[j]=='H'||s[j]=='I') temp+='4';
if(s[j]=='J'||s[j]=='K'||s[j]=='L') temp+='5';
if(s[j]=='M'||s[j]=='N'||s[j]=='O') temp+='6';
if(s[j]=='P'||s[j]=='R'||s[j]=='S') temp+='7';
if(s[j]=='T'||s[j]=='V'||s[j]=='U') temp+='8';
if(s[j]=='W'||s[j]=='X'||s[j]=='Y') temp+='9';
if(s[j]>='0'&&s[j]<='9') temp+=s[j];
}
int index=finds(x,temp,c);
if(index!=-1)
x[index].times++;
else x[c++].number=temp;
}
sort(x,x+c,cmp);
for(int i=0;i<c;i++)
if(x[i].times>1)
{
for(int j=0;j<3;j++)
cout<<x[i].number[j];
cout<<"-";
for(int j=3;j<(int)x[i].number.length();j++)
cout<<x[i].number[j];
cout<<" "<<x[i].times<<endl;
}
}