2021级《程序设计原理及C语言》练习题

N. Permutation

单点时限: 2.0 sec

内存限制: 512 MB

On a standard telephone keypad, the digits are mapped onto the alphabet (minus the letters Q and Z) as shown in this diagram:

In order to make their phone numbers more memorable, service providers like to find numbers that spell out some word appropriate to their business that makes that phone number easier to remember. Such words that help you remember some other data are called mnemonics.
Write a function ListMnemonics that generates all possible letter combinations that correspond to a given number, represented as a string of digits. For example, if you call ListMnemonics (“723”) your program should generate the 27 possible letter combinations corresponding to that prefix, as follows:

If the argument passed to ListMnemonics contains a 0 or a 1, that position in the output should simple be displayed as the digit, since there are no letters that correspond to it. For example, if you used the function to generate mnemonics for the area code 415, you program should generate the following nine strings:

输入格式

A string with three digits

输出格式

All mnemonics with alphabetical order, one mnemonic in one line

样例

Input
723
Output
PAD
PAE
PAF
PBD
PBE
PBF
PCD
PCE
PCF
RAD
RAE
RAF
RBD
RBE
RBF
RCD
RCE
RCF
SAD
SAE
SAF
SBD
SBE
SBF
SCD
SCE
SCF
Input
415
Output
G1J
G1K
G1L
H1J
H1K
H1L
I1J
I1K
I1L
Input
000
Output
000