ARTS-第11周-190527

Algorithm
Letter Combinations of a Phone Number

Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.

Example:
Input: “23”
Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”,“cd”, “ce”, “cf”].

座机电话的按键上面有9个数字,其中2到9的数字按键上有英文字母,例如:按键2上标记着abc,按键9上标记着 wxyz。(具体的对照表可以找个座机看看,后面的代码中也会有)。
基本思路是递归,感觉也没有什么特别的,直接上代码:

static public IList<string> LetterCombinations(string digits)
{
    List<string> result = new List<string>();
    Dictionary<char, List<string>> dic_num = new Dictionary<char, List<string>>()
    {
        { '2',new List<string>(){"a","b","c"}},
        { '3',new List<string>(){"d","e","f" }},
        { '4',new List<string>(){"g","h","i" }},
        { '5',new List<string>(){"j","k","l" }},
        { '6',new List<string>(){"m","n","o" }},
        { '7',new List<string>(){"p","q","r","s" }},
        { '8',new List<string>(){"t","u","v" }},
        { '9',new List<string>(){"w","x","y","z"}}
    };
    if (digits.Length == 0)
    {
        return result;
    }
    else if (digits.Length == 1)
    {
        return dic_num[digits[0]];
    }
    else if (digits.Length >= 2)
    {
        List<string> cur_list = dic_num[digits[0]];
        IList<string> next_list = LetterCombinations(digits.Substring(1));
        for (int i = 0; i < cur_list.Count; i++)
        {
            for (int j = 0; j < next_list.Count; j++)
            {
                result.Add(cur_list[i]+ next_list[j]);
            }
        }
    }
    
    return result;
}

Review

  • 这周主要是看Jenkins的官网教程,简单的技术文章,上面的安装步骤说明很详细。

Tips&Share

  • 这个星期尝试和学习了 Jenkins,准备部署的源码是 php 代码管理工具是 perforce。Docker 下安装 Jenkins,需要使用phing还需要安装php环境和phing插件和p4插件。需要注意的还有docker中容器的时间和系统时间同步。默认安装 Jenkins,容器中的时间和系统时间不一致。
  • 最近在看极客时间-技术管理实战。在做一个新的项目或者任务的时候,需要考虑:技术选型成本,技术升级成本,问题查找成本和代码维护成本。很多时候是从负责人的角度出发,多哪个技术熟悉,或者更有信息,或者更容易上手。能实现目标就行,没有去考虑问题查找成本和代码维护成本。这也许就是我没做过大的项目,或者也做不好大项目。
  • 在技术上时间投入和产出也许和心里的预期不一致,但是要静下心来,也是常听到的“努力不一定有结果,不努力就一定没有收获”
  • 都已经到第11周了,算法一周一题,量不大,最简单的还是比较容易坚持,share和技术学习坚持有点难度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值