lc567. Перестановка в строки

  1. Перестановка в Струнный среде

651

34

любимец

Share Учитывая две строки s1 и s2, написать функцию, чтобы вернуться верно, если s2 содержит перестановку s1. Другими словами, одна из перестановок первой строки является подстрока второй строки.

Пример 1:

Входные данные: s1 = "аб" s2 = "eidbaooo" Выход: Правильно Объяснение: s2 содержит одну перестановку s1 ( "ба"). Пример 2:

Входные данные: s1 = "аб" 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