Menu
CoddyTech

Longest Repeating Character Replacement

Ti viene fornita una stringa s composta da lettere maiuscole inglesi e un intero k. Puoi scegliere al massimo k posizioni di s e cambiare la lettera in ciascuna di esse con qualsiasi altra lettera maiuscola.

Restituisci la lunghezza della sottostringa più lunga, cioè una sequenza di lettere consecutive, che dopo le modifiche contiene un'unica lettera ripetuta.

Funzione

characterReplacement(s: string, k: integer) → integer
sstring
la stringa di lettere maiuscole
kinteger
il maggior numero di lettere che puoi cambiare
Restituisceinteger
la lunghezza della sottostringa più lunga di una lettera ripetuta che puoi creare

Vincoli

  • 1 ≤ s.length ≤ 5 × 104
  • s contiene solo lettere maiuscole inglesi.
  • 0 ≤ k ≤ s.length

Esempi

Input
s = "BAAACAB"k = 1
Output
5
Spiegazione
Sostituisci la C con una A e gli indici da 1 a 5 contengono AAAAA. Per sei lettere servirebbero due modifiche: gli indici da 0 a 5 contengono una B e la C, mentre gli indici da 1 a 6 contengono la C e l’ultima B.

lock icon+17 test nascosti all’invio

challenge icon

Per approfondire

Che cosa cambia se s può contenere qualsiasi carattere, non solo le 26 lettere maiuscole?

Ripristina il codice
def characterReplacement(s, k):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

s = "BAAACAB"
k = 1

Atteso

5