Menu
CoddyTech

Longest Repeating Character Replacement

Vous disposez d’une chaîne s composée de lettres majuscules anglaises et d’un entier k. Vous pouvez choisir au plus k positions de s et remplacer la lettre à chacune de ces positions par n’importe quelle autre lettre majuscule.

Renvoyez la longueur de la plus longue sous-chaîne, c’est-à-dire une suite de lettres adjacentes, qui ne contient qu’une seule lettre répétée après vos modifications.

Fonction

characterReplacement(s: string, k: integer) → integer
sstring
la chaîne de lettres majuscules
kinteger
le plus grand nombre de lettres que vous pouvez modifier
Renvoieinteger
la longueur de la plus longue sous-chaîne composée d’une même lettre répétée que vous pouvez obtenir

Contraintes

  • 1 ≤ s.length ≤ 5 × 104
  • s contient uniquement des lettres majuscules anglaises.
  • 0 ≤ k ≤ s.length

Exemples

Entrée
s = "BAAACAB"k = 1
Sortie
5
Explication
Remplacez le C par un A et les indices de 1 à 5 donnent AAAAA. Six lettres nécessiteraient deux changements : les indices de 0 à 5 contiennent un B et le C, et les indices de 1 à 6 contiennent le C et le dernier B.

lock icon+17 tests cachés à la soumission

challenge icon

Pour aller plus loin

Qu’est-ce qui change si s peut contenir n’importe quel caractère, et pas seulement les 26 lettres majuscules ?

Réinitialiser le code
def characterReplacement(s, k):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

s = "BAAACAB"
k = 1

Attendu

5