Menu
CoddyTech

Minimum Window Substring

Ti vengono date due stringhe, s e t. Trova la sottostringa più corta di s, ovvero una sequenza di caratteri consecutivi, che contenga ogni carattere di t, contando anche le ripetizioni: se t contiene due volte una lettera, la sottostringa deve contenerla almeno due volte. L’ordine non è importante e la sottostringa può contenere anche altri caratteri.

Se più sottostringhe hanno la stessa lunghezza minima, restituisci quella più a sinistra. Se nessuna sottostringa di s contiene tutti i caratteri di t, restituisci una stringa vuota.

Funzione

minWindow(s: string, t: string) → string
sstring
la stringa in cui cercare
tstring
i caratteri che la finestra deve contenere, comprese le ripetizioni
Restituiscestring
la sottostringa più corta e, a parità di lunghezza, quella 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 hanno la lunghezza minima, la risposta è quella più a sinistra; se non ne esiste nessuna, è "".

Esempi

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

lock icon+17 test nascosti all’invio

challenge icon

Per approfondire

Quando t usa solo poche lettere e s è lunga, gran parte di s non può mai essere rilevante. 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
Casi di test

Caso 1

Caso 2

Caso 3

Input

s = "mappingtheplan"
t = "nap"

Atteso

"plan"