- Перестановка в Струнный среде
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