iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

Java × LeetCode-30天日記系列 第 30

Day 30:Word Ladder (LC #127)

  • 分享至 

  • xImage
  •  

題目理解
我的理解 : 題目要求找出從 beginWord 轉換成 endWord 的最短字串轉換序列長度且每次只能改變一個字母。
方法

  • 將字典放入 Set 中以加速查詢。
  • 使用 Queue 進行 BFS,每次從目前單字嘗試替換每一個字母(a~z)。
  • 若新的單字存在於字典中,加入佇列並從字典中刪除(避免重複訪問)。
  • 當遇到 endWord 時,回傳當前的層數(即轉換步數)。

https://ithelp.ithome.com.tw/upload/images/20251016/201692389mXTCPWu1j.png

心得
原本看起來像是文字處理的題目,但實際上是「圖的最短路徑」問題。透過層層展開的 BFS,我能以最有效率的方式找到最短轉換序列。此外,也學會了如何在 BFS 中進行「字元替換搜尋」,並透過 HashSet 來加速搜尋與防止重複訪問。


上一篇
Day 29:Number of Islands (LC #200)
系列文
Java × LeetCode-30天日記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言