This commit is contained in:
2026-07-24 13:46:36 +08:00
parent 536a697566
commit 2b6dc69bde
7 changed files with 305 additions and 36 deletions
+58
View File
@@ -0,0 +1,58 @@
#include <iostream>
#include <map>
std::map<char, int> charMap;
void initMap() {
charMap = {{'0', 0}, {'1', 1}};
for (char c: "ABCabc2") { charMap[c] = 2; }
for (char c: "DEFdef3") { charMap[c] = 3; }
for (char c: "GHIghi4") { charMap[c] = 4; }
for (char c: "JKLjkl5") { charMap[c] = 5; }
for (char c: "MNOmno6") { charMap[c] = 6; }
for (char c: "PQRSpqrs7") { charMap[c] = 7; }
for (char c: "TUVtuv8") { charMap[c] = 8; }
for (char c: "WXYZwxyz9") { charMap[c] = 9; }
}
void runDataset() {
int stringCount;
std::map<std::string, int> duplicatedCounts;
std::cin >> stringCount;
for (int _ = 0; _ < stringCount; _++) {
std::string str;
// int currentNumber = 0;
std::string currentNumber;
std::cin >> str;
for (char c: str) {
if (c == '-') { continue; }
currentNumber += static_cast<char>(charMap[c] + '0');
}
duplicatedCounts[currentNumber]++;
}
bool noDuplicate = true;
for (const auto &[number, count]: duplicatedCounts) {
if (count > 1) {
noDuplicate = false;
std::cout << number.substr(0, 3) << "-" << number.substr(3) << " " << count << std::endl;
}
}
if (noDuplicate) {
std::cout << "No duplicates." << std::endl;
}
// std::cout << std::endl;
}
int main() {
initMap();
// int datasetCount;
// std::cin >> datasetCount;
// for (int _ = 0; _ < datasetCount; _++) {
// runDataset();
// }
runDataset();
return 0;
}