Leetcode 判斷子串行

2021-10-08 14:09:02 字數 695 閱讀 7345

給定字串 s 和 t ,判斷 s 是否為 t 的子串行。

你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長(長度 ~= 500,000),而 s 是個短字串(長度 <=100)。

字串的乙個子串行是原始字串刪除一些(也可以不刪除)字元而不改變剩餘字元相對位置形成的新字串。(例如,"ace"是"abcde"的乙個子串行,而"aec"不是)。

示例 1:

s = 「abc」, t = 「ahbgdc」

返回 true.

示例 2:

s = 「axc」, t = 「ahbgdc」

返回 false.

後續挑戰 :

如果有大量輸入的 s,稱作s1, s2, … , sk 其中 k >= 10億,你需要依次檢查它們是否為 t 的子串行。在這種情況下,你會怎樣改變**?

思路:雙指標 初始化兩個指標 i 和 j ,分別指向 s 和 t 的初始位置。每次貪心地匹配,匹配成功則 i 和 j 同時右移,匹配 s 的下乙個位置,匹配失敗則 j右移,i 不變,嘗試用 t 的下乙個字元匹配 s。

最終如果 i 移動到 s 的末尾,就說明 s 是 t 的子串行。

class

solution

j++;}

return i == s.

size()

;}};

leetcode 判斷子串行

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

leetcode 判斷子串行

給定字串 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 是 abcde 的乙個子串行,而 aec 不是...