程式設計師面試金典 面試題 01 05 一次編輯

2022-08-29 16:42:28 字數 639 閱讀 8003

字串有三種編輯操作:插入乙個字元、刪除乙個字元或者替換乙個字元。 給定兩個字串,編寫乙個函式判定它們是否只需要一次(或者零次)編輯。

示例 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...