这题不清楚啊
原题链接:21072.电话号码2024-09-30 18:41:29
发布于:北京
他没说输出顺序,所以我按字典序从小到大怎么啦
#include <iostream>
#include <string>
using namespace std;
int n,a[256],ha[10000000];
string s;
int main(){
a['A']=a['B']=a['C']=2;
for(int i=0;i<=9;i++)
a[i+'0']=i;
for(int i='D';i<='Z';i++)
a[i]=a[i-3]+1;
a['S']=7;
a['V']=8;
a['Y']=9;
cin >> n;
for(int i=0;i<n;i++){
cin >> s;
int len=s.size(),x=0;
for(int j=0;j<len;j++)
if(s[j]!='-'){
x*=10;
x+=a[s[j]];
}
ha[x]++;
}
bool is=0;
for(int i=0;i<10000000;i++)
if(ha[i]>1){
is=1;
cout << (i/10000) << '-' << (i%10000) << ' ' << ha[i];
}
if(!is) cout << "No duplicates.";
return 0;
}
全部评论 1
题目中明确说了啊,按照字典序排序。
将所有重复的telephone number按字典序以标准形式输出,并且在每个telephone number后跟一个整数,表示该telephone number共出现了多少次,telephone number和整数间用一个空格隔开。不要输出多余空行。
2024-10-01 来自 加拿大
1不知道为什么acgo的敏感词会把telephone number给屏蔽了。
2024-10-01 来自 加拿大
0为什么当时第一次看到了,第二次死活没找到“字典序”
2024-10-05 来自 北京
0
有帮助,赞一个