我有一个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'}
};
Run Code Online (Sandbox Code Playgroud)
如果我想找到一个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.