17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

 

示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
说明:
尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 1 public class Solution {
 2     private Map<Integer, char[]> map = null;
 3     private char[] digits = null;
 4 
 5     private List<String> helper(int cur){
 6         List<String> res = new ArrayList<>();
 7         if (cur == 0) {
 8             char[] value = map.get(digits[cur]-'0');
 9             for (char c : value) {
10                 res.add(c+"");
11             }
12             return res;
13         }
14         List<String> sub = helper(cur - 1);
15 
16         char[] value = map.get(digits[cur]-'0');
17         for (String s : sub) {
18             for (char c : value) {
19                 res.add(s+c);
20             }
21         }
22         return res;
23     }
24 
25     public List<String> letterCombinations(String digits) {
26         if (digits.equals("")) return new ArrayList<>();
27         int count, digit = 2;
28 
29         map = new HashMap<>();
30         this.digits = digits.toCharArray();
31 
32         for (char i = 'a'; i <= 'z';) {
33             count = (digit == 7 || digit == 9) ? 4 :3;
34             char[] value = new char[count];
35             for (int j = 0; j < count; j++) {
36                 value[j] = i++;
37             }
38             map.put(digit++, value);
39         }
40         return helper(digits.length()-1);
41     }
42 
43     public static void main(String[] args) {
44         List<String> list = new Solution().letterCombinations("");
45         for (String s : list) {
46             System.out.print(s+", ");
47         }
48     }
49 }

 

转载于:https://www.cnblogs.com/yfs123456/p/11613940.html

### 推荐的Linux系统BT客户端 对于Linux用户来说,有多个优秀的BitTorrent客户端可供选择。以下是几个推荐选项: #### 1. qBittorrent qBittorrent是一个开源且跨平台的轻量级BitTorrent客户端。它具有直观的图形界面,并支持多种高级功能。 - 支持磁力链接和RSS自动下载。 - 提供带宽调度器以及Web UI远程管理。 - 可以通过插件扩展其功能。 安装方法如下: ```bash sudo apt update && sudo apt install qbittorrent ``` #### 2. Transmission Transmission是一款专为Mac OS X设计但同样适用于Linux环境下的BitTorrent客户端。它的特点是占用资源少、易于配置并且安全性高。 - 用户界面简洁友好。 - 内置加密传输协议保护隐私。 - 自动更新种子文件列表并清理已完成的任务。 安装命令为: ```bash sudo apt-get install transmission-gtk ``` #### 3. Deluge Deluge是另一个流行的Python编写的自由软件项目之一,在Linux社区中有很高的人气。除了基本的功能外,还提供了丰富的第三方插件来增强用户体验。 - 多种通知方式(如桌面提示、电子邮件等)。 - 能够设置不同的优先级给各个文件片段。 - 完全自定义化的队列管理系统。 可以通过以下指令获取最新版本: ```bash sudo add-apt-repository ppa:deluge-team/ppa sudo apt-get update sudo apt-get install deluge ``` 以上三个都是目前较为流行且稳定的LinuxBT客户端解决方案[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值