美文网首页
面试题 16.20. T9键盘

面试题 16.20. T9键盘

作者: Chiduru | 来源:发表于2020-06-30 01:07 被阅读0次

【Description】
在老式手机上,用户通过数字键盘输入,手机将提供与这些数字相匹配的单词列表。每个数字映射到0至4个字母。给定一个数字序列,实现一个算法来返回匹配单词的列表。你会得到一张含有有效单词的列表。映射如下图所示:

示例 1:

输入: num = "8733", words = ["tree", "used"]
输出: ["tree", "used"]
示例 2:

输入: num = "2", words = ["a", "b", "c", "d"]
输出: ["a", "b", "c"]
提示:

num.length <= 1000
words.length <= 500
words[i].length == num.length
num中不会出现 0, 1 这两个数字

【Idea】
简单的一个哈希
两个应用点:

  1. Python下字典类型对哈希的应用;
  2. 深拷贝和浅拷贝;
    2.2 zip()函数,捷径函数

【Solution】

class Solution:
    def getValidT9Words(self, num: str, words: List[str]) -> List[str]:
        dic = {
            '2': 'abc',
            '3': 'def',
            '4': 'ghi',
            '5': 'jkl',
            '6': 'mno',
            '7': 'pqrs',
            '8': 'tuv',
            '9': 'wxyz',
        }
        res = copy.copy(words)
        for word in words:
            for n, char in zip(num, word):
                if char not in dic.get(n, ''):
                    res.remove(word)
                    break
        return res
截屏2020-06-30 上午1.07.12.png

相关文章

网友评论

      本文标题:面试题 16.20. T9键盘

      本文链接:https://www.haomeiwen.com/subject/genzfktx.html