Menu
CoddyTech

Minimum Window Substring

Ti vengono date due stringhe, s e t. Trova la sottostringa più corta di s che contiene ogni carattere di t, contando anche le ripetizioni: se t contiene una lettera due volte, la sottostringa deve contenerla almeno due volte. L'ordine non è importante e possono esserci anche altri caratteri.

Se ci sono più sottostringhe della stessa lunghezza minima, restituisci quella più a sinistra. Se nessuna contiene tutti i caratteri di t, restituisci una stringa vuota.

Funzione

minWindow(s: string, t: string) → string
sstring
la stringa da cercare
tstring
i caratteri che la finestra deve contenere, comprese le ripetizioni
Restituiscestring
la sottostringa più corta e, in caso di parità, più a sinistra di s che contiene tutti i caratteri di t, oppure una stringa vuota

Vincoli

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s e t contengono solo lettere inglesi. Le lettere maiuscole e minuscole sono caratteri diversi.
  • Quando diverse sottostringhe sono le più corte, la risposta è quella più a sinistra; quando non ne esiste nessuna, è "".

Esempi

Input
s = "mappingtheplan"t = "nap"
Output
"plan"
Spiegazione
La prima finestra da sinistra che contiene una n, una a e una p è appin, cinque caratteri. plan le contiene tutte e tre in quattro caratteri, e nessuna sequenza di tre le contiene.
challenge icon

Per approfondire

Quando t usa poche lettere e s è lunga, la maggior parte di s non conta mai. Riesci a fare in modo che la finestra salti solo tra le posizioni che contengono una lettera di t?

Ripristina il codice
def minWindow(s, t):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

s = "mappingtheplan"
t = "nap"

Output atteso

"plan"