Menu
CoddyTech

Minimum Window Substring

Du erhältst zwei Zeichenketten, s und t. Finde die kürzeste Teilzeichenkette von s, die jedes Zeichen von t enthält, wobei Wiederholungen mitgezählt werden: Wenn t einen Buchstaben zweimal enthält, muss die Teilzeichenkette ihn mindestens zweimal enthalten. Die Reihenfolge spielt keine Rolle, und es dürfen auch andere Zeichen vorkommen.

Wenn mehrere Teilzeichenketten am kürzesten sind, gib die am weitesten links stehende zurück. Wenn keine alle Zeichen von t enthält, gib eine leere Zeichenkette zurück.

Funktion

minWindow(s: string, t: string) → string
sstring
die Zeichenfolge, in der gesucht werden soll
tstring
die Zeichen, die das Fenster enthalten muss, einschließlich Wiederholungen
Gibt zurückstring
die kürzeste und dann am weitesten links stehende Teilzeichenfolge von s, die alle Zeichen von t enthält, oder eine leere Zeichenfolge

Einschränkungen

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s und t enthalten ausschließlich englische Buchstaben. Groß- und Kleinbuchstaben sind unterschiedliche Zeichen.
  • Wenn mehrere Teilzeichenfolgen am kürzesten sind, ist die Antwort die am weitesten links stehende; wenn keine vorhanden ist, lautet sie "".

Beispiele

Eingabe
s = "mappingtheplan"t = "nap"
Ausgabe
"plan"
Erklärung
Das erste Fenster von links, das ein n, ein a und ein p enthält, ist appin und fünf Zeichen lang. plan enthält alle drei auf vier Zeichen verteilt, und kein Lauf aus drei Zeichen tut das.
challenge icon

Weiterführende Frage

Wenn t wenige Buchstaben hat und s lang ist, ist der größte Teil von s nie relevant. Kannst du das Fenster nur zwischen Positionen verschieben, an denen ein Buchstabe aus t steht?

Code zurücksetzen
def minWindow(s, t):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

s = "mappingtheplan"
t = "nap"

Erwartete Ausgabe

"plan"