有一个关于在 PhonePad 上生成 10 位电话号码列表的问题,给定一组可能的动作和一个起始号码。
电话板:
1 2 3
4 5 6
7 8 9
* 0 #
可能的移动:
国际象棋中的皇后可以进行相同数量的移动(所以北,南,东,西,东北,西北,东南,西南......每个方向的n个空间)
起始编号:5
到目前为止,我已经将 PhonePad 实现为 2 维 char 数组,实现了女王可以在 HashMap 中进行的可能移动(使用 x 和 y 的偏移量),并且我可以使用可能的移动之一让女王移动一格.
我的下一步是使用 HasMap 中的可能移动找出一个算法,该算法将为我提供所有 10 位排列(电话号码)。允许重复数字。* 和 # 不允许在返回的电话号码列表中。
我想从
-5555555555、5555555551、55555555552
...等最多0,
-555555555515、55555555155、55555551555 .. . 和数字 2 到 0
... 以此类推,两位数的组合
关于生成 10 位数组合的系统方法有什么建议吗?即使是伪代码算法也值得赞赏!让我知道是否需要进一步澄清。
提前致谢!:)