python 键盘输入数字_九宫格键盘输入
九宮格鍵盤輸入
Letter Combinations of a Phone Number
給定一個數字字符串,返回數字可能代表的所有可能的字母組合。
數字到字母的映射(就像九宮格電話按鈕一樣)如下圖。
Given a digit string, 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:
Although the above answer is in lexicographical order, your answer could be in any order you want.
example 1
Input:Digit string "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
思路
以23為例,2代表abc,只需要將其轉換成lists = [a,b,c],然后處理3,3為def,將這三個字符分別加到s的每一個元素中,得到["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]。重復此過程即可。
上述思路可以用循環完成,同時python提供的reduce函數和生成式特性能夠精煉地表述,下面給出兩種代碼。
代碼
class Solution(object):
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
from functools import reduce #python3.x
if not digits:
return []
nums = '0 1 abc def ghi jkl mno pqrs tuv wxyz'.split(' ')
return reduce(lambda last, d: [x + y for x in last for y in nums[int(d)]], digits, ['']) # 第三個參數是initial
#使用循環完成
def letterCombinations_old(self, digits):
if not digits:
return []
nums = '0 1 abc def ghi jkl mno pqrs tuv wxyz'.split(' ')
ret = [_ for _ in nums[int(digits[0])]]
digits = digits[1:]
while digits:
ret = [x + y for x in ret for y in nums[int(digits[0])]]
digits = digits[1:]
return ret
本題以及其它leetcode題目代碼github地址: github地址
文章來源:segmentfault,作者:馮了個杰。如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至:william.shi#ucloud.cn(郵箱中#請改為@)進行舉報,并提供相關證據,一經查實,本社區將立刻刪除涉嫌侵權內容。
后臺-系統設置-擴展變量-手機廣告位-內容正文底部
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python 键盘输入数字_九宫格键盘输入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站如何进行渠道跟踪_网站如何进行搜索引
- 下一篇: websocket python爬虫_p