Menu
CoddyTech

Minimum Window Substring

On vous donne deux chaînes, s et t. Trouvez la plus courte sous-chaîne de s qui contient chaque caractère de t, en tenant compte des répétitions : si t contient une lettre deux fois, la sous-chaîne doit la contenir au moins deux fois. L’ordre n’a pas d’importance, et d’autres caractères peuvent également apparaître.

Si plusieurs sous-chaînes sont les plus courtes, renvoyez celle qui se trouve le plus à gauche. Si aucune ne contient tous les caractères de t, renvoyez une chaîne vide.

Fonction

minWindow(s: string, t: string) → string
sstring
la chaîne dans laquelle effectuer la recherche
tstring
les caractères que la fenêtre doit contenir, y compris les répétitions
Renvoiestring
la sous-chaîne la plus courte et, en cas d’égalité, la plus à gauche de s qui contient tous les caractères de t, ou une chaîne vide

Contraintes

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s et t ne contiennent que des lettres anglaises. Les lettres majuscules et minuscules sont des caractères différents.
  • Lorsque plusieurs sous-chaînes sont les plus courtes, la réponse est celle qui se trouve le plus à gauche ; lorsqu'il n'en existe aucune, c'est "".

Exemples

Entrée
s = "mappingtheplan"t = "nap"
Sortie
"plan"
Explication
La première fenêtre en partant de la gauche qui contient un n, un a et un p est appin, cinq caractères. plan contient les trois en quatre caractères, et aucune séquence de trois ne le fait.
challenge icon

Pour aller plus loin

Lorsque t comporte peu de lettres et que s est long, la majeure partie de s n’a jamais d’importance. Peux-tu faire en sorte que la fenêtre ne saute qu’entre les positions qui contiennent une lettre de t ?

Réinitialiser le code
def minWindow(s, t):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

s = "mappingtheplan"
t = "nap"

Résultat attendu

"plan"