判定字串是否只需要一次 或者零次 編輯問題

2021-10-09 00:25:25 字數 731 閱讀 3668

這題自己想的過於複雜,其實用雙指標分別從字串的頭尾遍歷就可以了。

以下是來自leetcode題解:

分別從兩個字串的兩邊向中間匹配,一旦不一樣就停止,這時剩下的first[i,j]first[i,j]和second[i,k]second[i,k]如果長度均小於等於1(注意臨界條件)則結果為true,否則false。

時間複雜度:o(n)o(n)

空間複雜度:o(1)o(1)

public

bool

oneeditaway

(string first,

string second)

int len1=first.length;

int len2=second.length;

if(math.

abs(len1-len2)

>1)

int i=

0,j=len1-

1,k=len2-1;

while

(i==second[i]

)while

(j>=

0&& k>=

0&& first[j]

==second[k]

)return j-i<

1&& k-i<1;

}

LeetCode 字串 一次編輯

輸入 first pale second ple 輸出 true 輸入 first pales second pal 輸出 false 使用和編輯距離一樣的方法計算兩個字串的編輯距離,然後判斷編輯距離是否小於等於 1。如下 class solution if dp m n 1 return true...

判斷字串中是否所有字元都只出現過一次

參考 程式設計師 面試指南 it名企演算法與資料結構題目最優解 給定乙個字串s,判斷s中是否存在所有字元都出現過一次,根據以下兩種要求實現不同的函式。要求一 實現時間複雜度為o n 的方法 要求二 在保證額外空間複雜度為o 1 的前提下,請實現時間複雜度盡量低的方法。要求一 時間複雜度為o n 遍歷...

perl一次性替換多個串字串

最近策劃非要搞一堆一樣的指令碼,然後其中的一些效果id需要替換成別新的,這樣的id總共有50多個,替換軟體的話只能乙個乙個搞,還擔心中間搞錯了,比如,複製貼上過程中,只複製了原id,新的id沒有換,那就把原id替換成了上乙個要替換的新id.於是網上搜搜看一次性替換多個字串的方法,這個方法如下 usr...