LeetCode 面試題 16 20 T9鍵盤

2021-10-19 02:54:42 字數 1104 閱讀 8771

傳送門:面試題 16.20. t9鍵盤

題目描述:在老式手機上,使用者通過數字鍵盤輸入,手機將提供與這些數字相匹配的單詞列表。每個數字對映到0至4個字母。給定乙個數字序列,實現乙個演算法來返回匹配單詞的列表。你會得到一張含有有效單詞的列表。對映如下圖所示:

重點注意:

num.length <= 1000

words.length <= 500

words[i].length == num.length

num中不會出現 0, 1 這兩個數字

樣例:

示例 1

:輸入: num =

"8733"

, words =

["tree"

,"used"

]輸出:

["tree"

,"used"

]示例 2

:輸入: num =

"2", words =

["a"

,"b"

,"c"

,"d"

]輸出:

["a"

,"b"

,"c"

]

解題思路:這道題首先很容易想到dfs+回溯,思路就是dfs(i,num),當i==num.length()時候檢查是否滿足條件,之後再乙個個回溯,但是這樣浪費很多時間,並且會tle(超時)。因此仔細看一下資料範圍,特殊標識一下鍵盤即可

仔細來說,列舉words中的所有答案,對於每乙個word,檢查是否符合num,檢查就是簡單的使用下標去str中查即可,最重要的是str表示的巧妙。

**:

class

solution

; list

ans=

newarraylist

();for

(string word:words)

}return ans;

}}

leetcode 面試題專題

面試題51.陣列中的逆序對 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。利用歸併排序,將陣列分成兩部分,前面一部分和後面一部分,進行歸併的時候,需要比較兩個陣列的數值大小,如果第二個陣列的值小的話,代表前乙個陣列剩下的都...

位元組面試題 leetcode

給定乙個迴圈陣列 最後乙個元素的下乙個元素是陣列的第乙個元素 輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 1。示例 1 輸入 1,2,1 輸出 2,1,2 解釋 第乙個 ...

leetcode面試題 08 11 硬幣

硬幣。給定數量不限的硬幣,幣值為25分 10分 5分和1分,編寫 計算n分有幾種表示法。結果可能會很大,你需要將結果模上1000000007 示例1 輸入 n 5 輸出 2 解釋 有兩種方式可以湊成總金額 5 55 1 1 1 1 1 示例2 輸入 n 10 輸出 4 解釋 有四種方式可以湊成總金額...