Menu
CoddyTech

Minimum Window Substring

Otrzymujesz dwa ciągi znaków: s i t. Znajdź najkrótszy podciąg ciągu s, czyli ciąg kolejnych znaków, który zawiera każdy znak z t, uwzględniając powtórzenia: jeśli t zawiera daną literę dwa razy, podciąg musi zawierać ją co najmniej dwa razy. Kolejność nie ma znaczenia, a podciąg może też zawierać inne znaki.

Jeśli kilka podciągów ma tę samą najkrótszą długość, zwróć ten najbardziej z lewej. Jeśli żaden podciąg ciągu s nie zawiera wszystkich znaków z t, zwróć pusty ciąg znaków.

Funkcja

minWindow(s: string, t: string) → string
sstring
ciąg znaków, którego szukasz
tstring
znaki, które musi zawierać okno, wraz z powtórzeniami
Zwracastring
najkrótszy, a w przypadku remisu najbardziej lewy podciąg s, który zawiera wszystkie znaki z t, albo pusty ciąg

Ograniczenia

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s i t zawierają wyłącznie angielskie litery. Wielkie i małe litery to różne znaki.
  • Jeśli kilka podciągów ma najkrótszą długość, odpowiedzią jest ten najbardziej z lewej; jeśli nie ma żadnego, jest nią "".

Przykłady

Wejście
s = "mappingtheplan"t = "nap"
Wyjście
"plan"
Wyjaśnienie
Licząc od lewej, pierwsze okno zawierające n, a i p to appin, które ma pięć znaków. plan na końcu zawiera wszystkie trzy w czterech znakach, a żaden ciąg trzech znaków ich nie zawiera.

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

challenge icon

Pytanie dodatkowe

Gdy t składa się tylko z kilku liter, a s jest długie, większość s nigdy nie ma znaczenia. Czy możesz sprawić, by okno przeskakiwało tylko między pozycjami zawierającymi literę z t?

Zresetuj kod
def minWindow(s, t):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

s = "mappingtheplan"
t = "nap"

Oczekiwane

"plan"