50pts求调
查看原帖
50pts求调
947029
Chen_Three楼主2024/7/31 11:03
#include<bits/stdc++.h>
using namespace std;
#define ll long long
unordered_map<char, char> mp;
unordered_map<string, int> mp2;
string a[100005], a2[100005];
int main() {
	mp['0'] = '0';
	mp['1'] = '1';
	mp['A'] = mp['B'] = mp['C'] = mp['2'] = '2';
	mp['D'] = mp['E'] = mp['F'] = mp['3'] = '3';
	mp['G'] = mp['H'] = mp['I'] = mp['4'] = '4';
	mp['J'] = mp['K'] = mp['L'] = mp['5'] = '5';
	mp['M'] = mp['N'] = mp['O'] = mp['6'] = '6';
	mp['P'] = mp['R'] = mp['S'] = mp['7'] = '7';
	mp['T'] = mp['U'] = mp['V'] = mp['8'] = '8';
	mp['W'] = mp['X'] = mp['Y'] = mp['9'] = '9';
	ll n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 0; j < a[i].size(); j++) {
			if (a[i][j] == '-') {
				a[i].erase(j, 1);
				j--;
				continue;
			}
			a[i][j] = mp[a[i][j]];
		}
	}
	sort(a + 1, a + n + 1);
	for (int i = 1; i <= n; i++) {
		mp2[a[i]]++;
	}
	bool flag = 0;
	for (auto i:mp2) {
		//cout << i.first << ' ' << i.second << endl;
		if(i.second > 1){
			cout << i.first.substr(0,3) << '-' << i.first.substr(3, 4) << ' ' << i.second << endl;
			flag = 1;
		}
	}
	if(!flag){
		cout << "No duplicates.";
	}
}
2024/7/31 11:03
加载中...