Menu
CoddyTech

Permutation in String

Permutacja ciągu znaków zawiera te same litery w dowolnej kolejności, każdą tyle razy, ile występuje w oryginale: tar, rat i art są swoimi permutacjami. Otrzymujesz dwa ciągi s1 i s2, złożone z małych liter alfabetu angielskiego. Zwróć true, jeśli jakaś permutacja s1 występuje w s2 jako podciąg (ciąg kolejnych znaków), a w przeciwnym razie zwróć false.

Funkcja

checkInclusion(s1: string, s2: string) → boolean
s1string
litery do przestawienia
s2string
ciąg znaków do wyszukania
Zwracaboolean
prawda, jeśli podciąg s2 jest przestawieniem znaków s1

Ograniczenia

  • 1 ≤ s1.length ≤ 2 × 104
  • 1 ≤ s2.length ≤ 5 × 104
  • s1 i s2 zawierają tylko małe litery alfabetu angielskiego (od a do z).
  • s1 może być dłuższe niż s2.

Przykłady

Wejście
s1 = "tar"s2 = "smartphone"
Wyjście
true
Wyjaśnienie
Podciąg art na indeksach od 2 do 4 w smartphone zawiera jedną literę a, jedną r i jedną t, czyli te same litery co tar.

lock icon+17 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy możesz zwrócić każdy indeks, od którego zaczyna się permutacja s1 w s2, nadal w czasie O(m + n)?

Zresetuj kod
def checkInclusion(s1, s2):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

s1 = "tar"
s2 = "smartphone"

Oczekiwane

true