力扣17.电话号码的字母组合(python)

 这道题综合来讲不是很难,主要是做一个2-9与对应字母的一个映射,于是创建一个l列表将对应的字母存储在里面(前两个放的是0,方便索引)

这道题第二个要点在于对digits长度的判断,方便进行不同层数的for循环来对所有字符进行遍历,需注意,最内层的for循环需对临时储存字符串ss清空,将其放入到存储的列表中后continue,以便进行所有字符串的遍历,代码如下:

class Solution(object):
    def letterCombinations(self, digits):
        l = [['0'],['0'],['a','b','c'],['d','e','f'],['g','h','i'],['j','k','l'],['m','n','o'],['p','q','r','s'],['t','u','v'],['w','x','y','z']]
        les = len(digits)
        m = []
        if les == 1:
            ii = int(digits[0])
            return l[ii]
        elif les == 2:
            ii = int(digits[0])
            jj = int(digits[1])
            ss = ''
            for i in l[ii]:
                for j in l[jj]:
                    ss += i
                    ss += j
                    m.append(ss)
                    ss = ''
                    continue
        elif les == 3:
            ii = int(digits[0])
            jj = int(digits[1])
            pp = int(digits[2])
            ss = ''
            for i in l[ii]:
                for j in l[jj]:
                    for p in l[pp]:
                        ss += i
                        ss += j
                        ss += p
                        m.append(ss)
                        ss = ''
                        continue
        elif les == 4:
            ii = int(digits[0])
            jj = int(digits[1])
            pp = int(digits[2])
            qq = int(digits[3])
            ss = ''
            for i in l[ii]:
                for j in l[jj]:
                    for p in l[pp]:
                        for q in l[qq]:
                            ss += i
                            ss += j
                            ss += p
                            ss += q
                            m.append(ss)
                            ss = ''
                            continue
        return m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值