輸入 n 個電話號碼(含字母、數字、連字符),按鍵盤映射(ABC→2, DEF→3...)轉為標準 7 位數字格式 XXX-XXXX,統計出現≥2次的號碼並按字典序輸出號碼與計數。無重複輸出 "No duplicates."。
int map[26] = {
2,2,2, 3,3,3, 4,4,4, 5,5,5, 6,6,6, 7,7,7,7, 8,8,8, 9,9,9
// A B C D E F G H I J K L M N O P Q R S T U V W X Y (Q/Z 無映射)
};
- 形成標準格式。
int main() {
int n; scanf("%d", &n); getchar();
vector nums;
char line[100], std[10];
for (int t=0; t= '0' && *p <= '9') std[idx++] = *p;
else if (*p >= 'A' && *p <= 'Y' && *p != 'Q')
std[idx++] = map[*p - 'A'] + '0';
if (idx == 3) std[idx++] = '-';
}
std[idx] = '\0';
nums.push_back(std);
}
sort(nums.begin(), nums.end());
bool found = false;
for (int i=0, cnt=1; i= 2) { printf("%s %d\n", nums[i].c_str(), cnt); found = true; }
cnt = 1;
}
}
if (!found) printf("No duplicates.\n");
return 0;
}