Leetcode字串編輯

2021-10-06 03:22:27 字數 930 閱讀 8005

leetcode

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

三種情況討論:

替換:字串長度不變,考慮內部不相等的個數是否超過兩個

刪除/插入:只變化乙個字元,跳過該字元,比較剩下是否相等

兩個字串長度差超過2,不符合

雙指標,分別從長字元的首端開始掃瞄至不相等處,另乙個從尾端掃瞄,比較兩個指標位置差值

class

solution

:def

oneeditaway

(self, first:

str, second:

str)

->

bool:if

abs(

len(first)

-len

(second)

)>1:

return

false

iflen

(first)

<

len(second)

: first,second = second,first

i,j,k =0,

len(first)-1

,len

(second)-1

while i<

len(second)

and first[i]

==second[i]

: i+=

1while k>=

0and first[j]

==second[k]

: j-=

1 k-=

1return j-i<

1and k-i<

1

字串編輯

字串編輯 time limit 10000ms memory limit 65536k total submit 19 accepted 15 case time limit 1000ms description 為了對一些資料進行保密,奶牛們要對某些文章進行編輯。編輯的方法很奇特 要把原有文章的某...

LeetCode 字串 一次編輯

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

LeetCode 字串 反轉字串

反轉字串 編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列char的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸出 o l ...