lc567。文字列で並べ替え

  1. 文字列の中での順列

651

34

お気に入り

シェアは、s2がS1の順列が含まれている場合はtrueを返すように関数を記述し、二つの文字列s1とs2を考えます。つまり、最初の文字列の順列の1は、第二の文字列の部分文字列です。

例1:

入力:S1 = "AB"、S2 = "eidbaooo" 出力:真の説明:S2は、S1( "BA")のいずれかの順列が含まれています。例2:

入力:S1 = "AB"、S2 = "eidboaoo" 出力:偽

アイデア:アクティブウィンドウ

コード:のpython3

class Solution:
    def checkInclusion(self, s1: str, s2: str) -> bool:
        m=len(s1)
        n=len(s2)
        if m>n:return False
        s1hash=[0]*123
        s2hash=[0]*123
        for x in s1:
            s1hash[ord(x)]+=1
        for i in range(0,n):
            s2hash[ord(s2[i])]+=1
            if i>=m:
                s2hash[ord(s2[i-m])]-=1
            if s2hash==s1hash:
                return True
        return False
复制代码

ます。https://juejin.im/post/5d0c3bcee51d4510803ce3cbで再現

おすすめ

転載: blog.csdn.net/weixin_33813128/article/details/93173679