字串有三種編輯操作:插入乙個字元、刪除乙個字元或者替換乙個字元。 給定兩個字串,編寫乙個函式判定它們是否只需要一次(或者零次)編輯。
示例 1:
輸入:
first = "pale"
second = "ple"
輸出: true
示例 2:
輸入:
first = "pales"
second = "pal"
輸出: false
根據字串長度差值判斷是替換還是插入或刪除,通過兩個字串不同字元個數判斷是否只經過一次編輯,如果不同字元大於1,則不能經過一次編輯直接返回false。
時間複雜度:o(n)
空間複雜度:o(1)
class solution
} else if (d == 1) else
}} else
return true;
}};
時間複雜度:o(n)
空間複雜度:o(1)
class solution
};
程式設計師面試金典 面試題01 05 一次編輯
本題可以轉化為求編輯距離。題目限定為可以插入 刪除 替換乙個字元,這種編輯距離稱為萊溫斯坦距離,同樣經常遇到的還有漢明距離等。字串有三種編輯操作 插入乙個字元 刪除乙個字元或者替換乙個字元。給定兩個字串,編寫乙個函式判定它們是否只需要一次 或者零次 編輯。示例 1 輸入 first pale sec...
程式設計師面試金典 面試題 08 09 括號
括號。設計一種演算法,列印n對括號的所有合法的 例如,開閉一一對應 組合。說明 解集不能包含重複的子集。例如,給出 n 3,生成結果為 dfs搜尋,如果當前左括號用超了,右括號用超了,或者右括號的數量大於左括號的數量直接返回。而如果左右括號剛好用盡,代表生成乙個結果,記錄下來。然後就是遞迴,新增左括...
程式設計師面試金典 面試題 08 13 堆箱子
堆箱子。給你一堆n個箱子,箱子寬 wi 高hi 深di。箱子不能翻轉,將箱子堆起來時,下面箱子的寬度 高度和深度必須大於上面的箱子。實現一種方法,搭出最高的一堆箱子。箱堆的高度為每個箱子高度的總和。輸入使用陣列 wi,di,hi 表示每個箱子。示例1 輸入 box 1,1,1 2,2,2 3,3,3...