LeetCode 567 字串的排列

2021-10-09 19:18:32 字數 860 閱讀 4678

給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。

換句話說,第乙個字串的排列之一是第二個字串的子串。

示例1:

輸入: s1 = 「ab」 s2 = 「eidbaooo」

輸出: true

解釋: s2 包含 s1 的排列之一 (「ba」).

示例2:

輸入: s1= 「ab」 s2 = 「eidboaoo」

輸出: false

注意:輸入的字串只包含小寫字母

兩個字串的長度都在 [1, 10,000] 之間

最開始使用的是全排列,然後比較的時候發現t了,然後就想到用排序的方式,emmmm又t了。 最後想到用滑動視窗 然後a了

每次取 s1 長度的視窗 然後排序比較,相等就返回true

class

solution

(object):

defcheckinclusion

(self, s1, s2)

:"""

:type s1: str

:type s2: str

:rtype: bool

"""l1,l2 =

len(s1)

,len

(s2)

s1 =

sorted

(s1)

for i in

range

(l2-l1+1)

: t = s2[i:i+l1]

ifsorted

(t)== s1:

return

true

return

false

LeetCode 567 字串的排列

給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 fals...

leetcode 567 字串的排列

給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 fals...

leetcode 567 字串的排列

字串的排列是否在另乙個字串中 說明 各個元素個數相同的字串都是原字串的排列 滑動視窗 class solution else memo s1 i 記錄各個字元的個數 int comp 0 unordered map char int submemo for int i 0 isize i 前面的視窗...