iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
佛心分享-IT 人自學之術

從Leetcode到實務的橋樑系列 第 12

Day 12(Letter Combinations of a Phone Number)

  • 分享至 

  • xImage
  •  

題目介紹:
給定一個僅包含數字2-9的字串,要求返回該數字所能表示的所有字母組合。數字與字母的對應關係基於傳統電話按鍵(例如:2 對應 "abc",3 對應 "def",等等)。必須列出所有可能的組合,並以字串列表的形式輸出。如果輸入是空字串,則返回空列表。
解題流程:
先建立數字到字母的映射表,再用回溯法遞迴生成所有可能組合。每次從當前數字取出對應字母,依序加入暫存字串,直到長度與輸入數字相同就加入結果。若輸入為空字串則直接回傳空列表。
程式碼及執行結果截圖:
https://ithelp.ithome.com.tw/upload/images/20250925/20168871Ak36xtWUDd.pnghttps://ithelp.ithome.com.tw/upload/images/20250925/20168871Xb0Gut85qV.png
https://ithelp.ithome.com.tw/upload/images/20250925/20168871bPxUxZxCOv.png
學習心得:
我更深入理解了回溯法的核心思想。這題要求生成所有可能的組合,看似繁瑣,但只要拆解成逐層遞迴處理,每一步選擇一個字母並向下延伸,就能逐漸構建出完整答案。實作時,我學到如何利用 StringBuilder 搭配遞迴有效地增減字元,避免不必要的字串建立,提升程式效率。這也讓我體會到回溯不僅適用於排列組合題,更是解決「所有可能性」問題的有力工具。此外,我也加深了對電話鍵盤映射的處理方式,學會如何以陣列或 Map 建立數字與字母的關聯。
延伸邏輯時事面:
1.輸入法設計:
手機鍵盤輸入與文字聯想功能,就像這題的邏輯。透過數字映射字母,再搭配 AI 預測字詞,能加快使用者輸入速度。

2.自動客服與語音轉換:
客服系統常需要將按鍵數字轉換成指令選項,例如「按 1 查詢帳單,按 2 聯絡客服」。這與題目中數字對應字母的映射概念類似。

3.資安與密碼生成:
有些密碼生成或加密演算法會利用數字與字母的組合邏輯來增加複雜度,這題的排列組合思維同樣能應用於隨機字串產生。


上一篇
Day11 (Zigzag Conversion)
下一篇
Day13(31. Next Permutation)
系列文
從Leetcode到實務的橋樑13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言