LeetCode 筆記 - 583. Delete Operation for Two Strings
挑戰找出將兩個字串刪減至完全相同所需的最少步數。本文將問題轉化為尋找「最長共同子序列」(LCS),並揭露總長度扣除兩倍 LCS 即為最小刪除次數的規律。透過結合動態規劃概念,能高效解決字串比對與編輯距離相關問題。
⚠️ 舊文提醒:本文發佈於約 4 年前,部分內容或指令可能已過時,請斟酌參考。
題目在此 583. Delete Operation for Two Strings
給定兩個字串,請找出最少將它們刪成一樣字串的次數
解題思維
同學,在這裡我們會用到 Longest Common Subsequence 的概念
如果沒解過可以先看這篇 LeetCode 筆記 - 1143. Longest Common Subsequence
我們在這裡先計算出 Longest Common Subsequence 的結果
因為 Longest Common Subsequence 是不會被刪掉的
而剩下的字元都會被刪掉
所以答案就變成 size1 + size2 - 2 * lcs
程式碼
1 | class Solution: |