leetcode題目 電話號碼的字母組合

2021-09-18 02:24:33 字數 1655 閱讀 1962

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

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

示例:輸入:「23」

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

說明:儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。

主要是由於輸入字串的長度不確定,按常規處理,會發現迴圈巢狀的層數不確定,於是得從其它角度入手。

這個解法提供者只用短短12行**搞定,簡潔易懂。主要思路如下:

遍歷輸入數字;

在原來每個字串分別在末尾加上當前數字對應的字母。

class

solution

:def

lettercombinations

(self, digits:

str)

-> list[

str]

: ans=

temp=[''

]for d in digits:

ans=

] temp=ans

return ans

這個是我自己想的,由於c語言使用起來比較基礎,所以要幹的事情很瑣碎。

先看下面圖

可以發現輸出序列是乙個樹狀結構,於是可以考慮對字串陣列逐位做處理。第一次確定輸出所有字串中哪一部分該為a,b,c,第二次確定哪些部分為d,e,f,將所有輸出的字串分成一組一組的。

char**

lettercombinations

(char

* digits,

int* returnsize)

;int inputlength =

strlen

(digits)

;int

*number =

(int*)

malloc

(sizeof

(int

)*inputlength)

;int outputlength =1;

for(

int i =

0; i < inputlength; i++

)char

**ch =

(char**

)malloc

(sizeof

(char*)

*outputlength)

;for

(int i =

0; i < outputlength; i++

)int k =1;

for(

int i =

0; i < inputlength; i++)}

}for

(int i =

0; i < outputlength; i++

)*returnsize = outputlength;

return ch;

}

LeetCode題目 17 電話號碼的字母組合

class solution 建立list集合用來存放答案 list list newarraylist 主函式 public list lettercombinations string digits 遞迴函式用來連線字串,str為上乙個連線的字串,digits為上乙個切割後剩下的字串 priva...

test題目 電話號碼分身

題目描述 繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打亂這些字母,所生成的字串即為 號碼對應的...

電話號碼問題

問題描述 商業單位需要容易記憶的 號碼,有一些方法可以讓 號碼變得更容易記憶。譬如,可以把 號碼寫成單詞或短語,如 mon glop 可以代表滑鐵盧大學的 有時僅僅是把號碼的一部分寫成單詞,如打 310 gino 便可向 gino 比薩餅店定購比薩。另一種讓 號碼容易記憶的方法是將數字用一種容易記的...