Menu
CoddyTech

Permutation in String

Una permutazione di una stringa usa le stesse lettere in qualsiasi ordine, ciascuna tante volte quante nella stringa originale: tar, rat e art sono permutazioni l'una dell'altra. Ti vengono date due stringhe s1 e s2 composte da lettere inglesi minuscole. Restituisci true se una qualche permutazione di s1 compare in s2 come sottostringa (una sequenza di caratteri consecutivi), e false altrimenti.

Funzione

checkInclusion(s1: string, s2: string) → boolean
s1string
le lettere da riordinare
s2string
la stringa in cui cercare
Restituisceboolean
vero se una sottostringa di s2 è una permutazione di s1

Vincoli

  • 1 ≤ s1.length ≤ 2 × 104
  • 1 ≤ s2.length ≤ 5 × 104
  • s1 e s2 contengono solo lettere inglesi minuscole (da a a z).
  • s1 può essere più lunga di s2.

Esempi

Input
s1 = "tar"s2 = "smartphone"
Output
true
Spiegazione
La sottostringa art agli indici da 2 a 4 di smartphone contiene una a, una r e una t, le stesse lettere di tar.

lock icon+17 test nascosti all’invio

challenge icon

Per approfondire

Riesci a restituire ogni indice di s2 da cui inizia una permutazione di s1, sempre in tempo O(m + n)?

Ripristina il codice
def checkInclusion(s1, s2):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

s1 = "tar"
s2 = "smartphone"

Atteso

true