Leetcode 392 判斷子串行

2021-10-08 14:27:48 字數 1437 閱讀 4407

題目描述:

解題思路一:雙指標從初始位置開始利用雙指標從前向後匹配,若匹配成功則右移慢指標,否則右移左指標。最終如果 i 移動到 s 的末尾,就說明 s 是 t 的子串行。

**實現

class

solution

:def

issubsequence

(self, s:

str, t:

str)

->

bool

: n, m =

len(s)

,len

(t) i = j =

0while i < n and j < m:

if s[i]

== t[j]

: i +=

1 j +=

1return i == n

解題思路二:動態規劃<**實現

class

solution

:def

issubsequence

(self, s:

str, t:

str)

->

bool

: n, m =

len(s)

,len

(t) f =[[

0]*26

for _ in

range

(m)]

[m]*26)

for i in

range

(m -1,

-1,-

1):for j in

range(26

):f[i]

[j]= i if

ord(t[i]

)== j +

ord(

'a')

else f[i +1]

[j]

add =

0for i in

range

(n):

if f[add]

[ord

(s[i])-

ord(

'a')

]== m:

return

false

add = f[add]

[ord

(s[i])-

ord(

'a')]+

1return

true

leetcode 392 判斷子串行

給定字串s和t,判斷s是否為t的子串行。你可以認為s和t中僅包含英文小寫字母。字串t可能會很長 長度 500,000 而s是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變剩餘字元相對位置形成的新字串。例如,ace 是 abcde 的乙個子串行,而 aec 不是...

leetcode 392 判斷子串行

給定字串 s 和 t 判斷 s 是否為 t 的子串行。你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長 長度 500,000 而 s 是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變剩餘字元相對位置形成的新字串。例如,ace 是 abcde ...

LeetCode 392 判斷子串行

題目描述 給定字串 s 和 t 判斷 s 是否為 t 的子串行。你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長 長度 500,000 而 s 是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變剩餘字元相對位置形成的新字串。例如,ace 是 a...