博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode17. Letter Combinations of a Phone Number(思路及python解法)
阅读量:2241 次
发布时间:2019-05-09

本文共 1105 字,大约阅读时间需要 3 分钟。

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"].

其实就是把所有字母组合输出一遍。

首先建立一个字典,通过input的数字,比如“23”,获得对应的字符串['abc', 'def']。

然后就是组合过程,我用的BFS方法。

bfs存储的是到当前的字符串所有的字母组合。

最开始是              ['']

与‘abc’组合后是   ['a', 'b', 'c']

与‘def’组合后是   ['ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf']

letters就是新的字符串比如’def'

class Solution:    def letterCombinations(self, digits: str) -> List[str]:        if len(digits)==0:return []        mapping = {'2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl',                    '6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz'}        lis=[]        for digit in digits:            lis.append(mapping[digit])                bfs=['']        for letters in lis:            temp=[]            for b in bfs:                for letter in letters:                    temp.append(b+letter)            bfs=temp        return bfs

 

转载地址:http://ncrbb.baihongyu.com/

你可能感兴趣的文章
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
LightGBM 如何调参
查看>>
用 TensorFlow.js 在浏览器中训练神经网络
查看>>
梯度消失问题与如何选择激活函数
查看>>
为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例
查看>>
为什么在优化算法中使用指数加权平均
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>