Backtracking——17. 电话号码的字母组合

2020-09-19  本文已影响0人  含泪若笑

比较能想到的是递归,但递归里面的实现我其实是看了答案才大概清楚的。

首先是方法中传入了一个存放结果的数组,递归方法的开始,我们可以先判断长度是不是等于数字的长度,等于把这个string加入结果集,否则继续下面的操作,取出下一个电话号码的位置, int curPosition = digits.charAt(pre.length()) - '0';找到它对应的字符串,遍历,加入,递归,删除,不断重复。就相当于abc分别处于第一个位置,都计算了一遍。

pre.append(c);

doCombination(pre, res, digits);

pre.deleteCharAt(pre.length() - 1);

代码:

https://github.com/hanleirx/LeetCode/blob/master/17.%20%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81%E7%9A%84%E5%AD%97%E6%AF%8D%E7%BB%84%E5%90%88

上一篇下一篇

猜你喜欢

热点阅读