電話字母組合 全排列 dfs python

2021-09-26 02:34:20 字數 1192 閱讀 6796

要求:

給定乙個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。

給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。

示例:輸入:」23」

輸出:[「ad」, 「ae」, 「af」, 「bd」, 「be」, 「bf」, 「cd」, 「ce」, 「cf」].

class solution(object):

def lettercombinations(self, digits):

phone =

res =

length = len(digits)

self.dfs("", 0, length, phone, digits, res)

return res

def dfs(self, combination, index, length, phone, digits, res):

if length == index:

return

for letter in phone[digits[index]]:

self.dfs(combination+letter, index+1, length, phone, digits, res)

s = solution()

m = s.lettercombinations('89')

print(m)

全排列

def permutation(ss):

if len(ss)<=1 :

return ss

res =

dfs("", 0, len(ss), res, ss)

return res

def dfs(combination, index, length, res, ss):

if length == index:

return

for i in range(len(ss)):

if ss[i] not in ss[:i]: #這一句可以實現去重,即'aaaa'這種只會列印乙個

dfs(combination+ss[i], index+1, length, res, ss[:i]+ss[i+1:])

ss1 = 'mpq'

res = permutation(ss1)

print(res)

電話號碼的字母組合

給乙個數字字串,每個數字代表乙個字母,請返回其所有可能的字母組合。下圖的手機按鍵圖,就表示了每個數字可以代表的字母。樣例給定 23 返回 ad ae af bd be bf cd ce cf 注意以上的答案是按照詞典編撰順序進行輸出的,不過,在做本題時,你也可以任意選擇你喜歡的輸出順序。class ...

電話號碼的字母組合

給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映關係如下 示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 注 輸出字串順序任意 我的 public class lettercombinationsofaphonenumber public...

電話號碼的字母組合

這是一道我刷題時遇到的乙個題目,很簡單,輸入數字,輸出這些數字構成的字元排列組合 由可以看出。given a string containing digits from 2 9 inclusive,return all possible letter combinations that the nu...