如果給定一組可能的移動和起始號碼,請在PhonePad上生成一個10位數電話號碼列表。偏移量的Java置換
的PhonePad:
* 0#
可能的移動:
相同數量的移動女王在棋可以在每個方向上(如此向北,南,東,西,東北,西北,東南,西南... n空間)
起始號碼:5
到目前爲止我已經實現了PhonePad作爲2維字符陣列中,實現的可能的移動一個大號可以在一個HashMap使(使用x和y的偏移量),並且我可以使女王使用其中一種可能的舉動移動一個正方形。
我的下一步是找出一個算法,它會給我所有的10位數字排列(電話號碼),使用我的HasMap中可能的移動。允許重複一個號碼。 *和#不允許在返回的電話號碼列表中。
我會想象與
起步 - 5555555555,5555555551,5555555552 ...等多達0,
- 5555555515,5555555155,5555551555 .. 5155555555 ..和與數字高達2 0
- 5555555151,5555551515,5555515155 .. 5151555555 ..和與數字高達2 0
......等了兩個數字的組合
上,以系統化的方法產生的10位數字的組合有什麼建議?即使是僞代碼算法,也是非常感謝!請告知我是否需要進一步澄清。
在此先感謝! :)
這似乎是深度優先搜索問題(DFS)。請參閱:http://en.wikipedia.org/wiki/Depth-first_search –