我有一个2D数组,存储与您在电话键盘上看到的不同的字母.
char [][] convert = { {}, {'A','B','C'}, {'D','E','F'}, {'G','H','I'}, {'J','K','L'}, {'M','N','O'}, {'P','R','S'}, {'T','U','V'}, {'W','X','Y'} };
如果我想找到一个5字母单词的所有可能的排列,从2D数组的前5行各取1个字母,我该怎么做?我正在考虑递归,但这只是让我感到困惑.
为了使这个问题更容易理解,这是一个例子:
一个3个字母的单词取自第1行{'A','B','C'}
的第一个字母,第3行的第二个字母{'G','H','I'}
,以及第6行的第三个字母{'P','R','S'}
.总共有27种可能的结果:AGP AGR AGS AHP AHR AHS AIP AIR AIS BGP BGR BGS BHP BHR BHS BIP BIR BIS CGP CGR CGS CHP CHR CHS CIP CIR CIS
.