2.2 487-3279

敲几行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;
		}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值