对于这个题,花费的时间也不少。
错误一;由于考虑不全
1
40
0U--4N712
---X2-KN-U-75
VR-J37G--3
85W-0Y6-V
85W-0Y6-V
85W-0Y6-V
--N-6AV4-NK
--XL----F-PO--B-0
-P-10167P
7--R8YME-N
P-U-1O6W-----1
X-KFK87--L
YFX63K-N
-3-73G---ELH
--2RD-6-IJ-Y
P2--SJ9G9
P2--SJ9G9
O-1----2287-2
-DC-C1L-3V
7963V68
U-66X52M
U-66X52M
-8-16F5TG
---YN-32E5-K
---YN-32E5-K
4--KDJ-PV2
4--KDJ-PV2
P27-42L2
P27-42L2
-MIWO-W5D
44M7675
F---6-7R80M
T5S6U1-P
T5S6U1-P
T5S6U1-P
BUM85L--3
BUM85L--3
DB1E---046
36O--7-1W2
-R--52-P-Y7H
输出:
286-8553 2
453-5782 2
727-4252 2
727-5949 2
857-6817 3
859-0968 3
866-9526 2
963-2355 2
最后的两个号码相同时,不会输出,
我完善了循环后
交上还是wa
这就是因为错误二,
不认真读题
没有重复的时候应该输出No duplicates.
错误一;由于考虑不全
1
40
0U--4N712
---X2-KN-U-75
VR-J37G--3
85W-0Y6-V
85W-0Y6-V
85W-0Y6-V
--N-6AV4-NK
--XL----F-PO--B-0
-P-10167P
7--R8YME-N
P-U-1O6W-----1
X-KFK87--L
YFX63K-N
-3-73G---ELH
--2RD-6-IJ-Y
P2--SJ9G9
P2--SJ9G9
O-1----2287-2
-DC-C1L-3V
7963V68
U-66X52M
U-66X52M
-8-16F5TG
---YN-32E5-K
---YN-32E5-K
4--KDJ-PV2
4--KDJ-PV2
P27-42L2
P27-42L2
-MIWO-W5D
44M7675
F---6-7R80M
T5S6U1-P
T5S6U1-P
T5S6U1-P
BUM85L--3
BUM85L--3
DB1E---046
36O--7-1W2
-R--52-P-Y7H
输出:
286-8553 2
453-5782 2
727-4252 2
727-5949 2
857-6817 3
859-0968 3
866-9526 2
963-2355 2
最后的两个号码相同时,不会输出,
我完善了循环后
交上还是wa
这就是因为错误二,
不认真读题
没有重复的时候应该输出No duplicates.
以后做题,还是得注意这两个方面!!!
#include <iostream>
#include <cstdlib>
using namespace std;
int com (const void *a,const void *b)
{
int * c = (int *)a;
int * d = (int *)b;
for(int i = 0; i < 7; i++)
{
//cout<<*(c+i) <<" "<< *(d+i)<<endl;
if(*(c+i) != *(d+i))return *(c+i) - *(d+i);
}
return 0;
}
int main ()
{
int n;
cin>>n;
while(n--)
{
int flag = 0;
int num;
cin>>num;
cin.get();
//cout<<num<<endl;
int a[num][7];
int N = num;
while(N)
{
N--;
int i = 0;
char ch;
while((ch=cin.get())!='\n')
{
if(ch>='A'&&ch<='P')a[N][i++] = (ch-'A')/3+2;
else if(ch == 'R'||ch == 'S')a[N][i++] = 7;
else if(ch>='T'&&ch<='Y')a[N][i++] = (ch-'T')/3+8;
if(ch>='0'&&ch<='9')a[N][i++] = ch-'0';
}
// for( i = 0; i < 7; i++)
// cout<<a[N][i];
// cout<<endl;
}
qsort(a,num,sizeof(a[0]),com);
int count = 1;
for(int i = 0; i < num-1; i++)
{
for(int j = 0; j < 7; j++)
{
if(a[i][j]!=a[i+1][j])
{
if(count>1)
{flag = 1;
for(int k = 0; k < 7; k ++)
{
if(k == 3)cout<<"-";
cout<<a[i][k];
}
cout<<" "<<count;
cout<<endl;
}
count = 1;
break;
}
else if( j == 6)count++;
}
if(i == num-2&&count>1)
{flag = 1;
for(int k = 0; k < 7; k ++)
{
if(k == 3)cout<<"-";
cout<<a[i][k];
}
cout<<" "<<count;
cout<<endl;
}
}
if(!flag)cout<<"No duplicates."<<endl;
if(n)cout<<endl;
}
return 0;
}