题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=157
大意就是处理下这些字符串,然后重复两次以上的输出
#include<cstdio>
#include<cstring>
#include<map>
#include<iostream>
using namespace std;
int main() {
char str[20], num[20];
int n;
map<string, int> q;
map<string, int>::iterator it;
scanf("%d", &n);
getchar();
for(int i = 0; i < n; i++) {
gets(str);
int temp = 0;
for(int j = 0; j < strlen(str); j++) {
if(str[j] >= '0' && str[j] <= '9') {
num[temp++] = str[j];
} else if(str[j] >= 'A' && str[j] <= 'Z') {
if(str[j] <= 'C') num[temp] = '2';
else if(str[j] <= 'F') num[temp] = '3';
else if(str[j] <= 'I') num[temp] = '4';
else if(str[j] <= 'L') num[temp] = '5';
else if(str[j] <= 'O') num[temp] = '6';
else if(str[j] <= 'S') num[temp] = '7';
else if(str[j] <= 'V') num[temp] = '8';
else if(str[j] <= 'Y') num[temp] = '9';
temp++;
}
if(temp == 3) num[temp++] = '-';
}
num[temp] = '\0';
q[num] += 1;
}
for(it = q.begin(); it != q.end(); it++)
if(it -> second >= 2)
cout << it -> first << " " << it -> second << endl;
}
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=157
大意就是处理下这些字符串,然后重复两次以上的输出
#include<cstdio>
#include<cstring>
#include<map>
#include<iostream>
using namespace std;
int main() {
char str[20], num[20];
int n;
map<string, int> q;
map<string, int>::iterator it;
scanf("%d", &n);
getchar();
for(int i = 0; i < n; i++) {
gets(str);
int temp = 0;
for(int j = 0; j < strlen(str); j++) {
if(str[j] >= '0' && str[j] <= '9') {
num[temp++] = str[j];
} else if(str[j] >= 'A' && str[j] <= 'Z') {
if(str[j] <= 'C') num[temp] = '2';
else if(str[j] <= 'F') num[temp] = '3';
else if(str[j] <= 'I') num[temp] = '4';
else if(str[j] <= 'L') num[temp] = '5';
else if(str[j] <= 'O') num[temp] = '6';
else if(str[j] <= 'S') num[temp] = '7';
else if(str[j] <= 'V') num[temp] = '8';
else if(str[j] <= 'Y') num[temp] = '9';
temp++;
}
if(temp == 3) num[temp++] = '-';
}
num[temp] = '\0';
q[num] += 1;
}
for(it = q.begin(); it != q.end(); it++)
if(it -> second >= 2)
cout << it -> first << " " << it -> second << endl;
}