Menu
CoddyTech

Longest Repeating Character Replacement

ŚredniePrzesuwane oknopython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz ciąg znaków s składający się z wielkich liter alfabetu angielskiego oraz liczbę całkowitą k. Możesz wybrać co najwyżej k pozycji w ciągu s i zmienić literę na każdej z nich na dowolną inną wielką literę.

Zwróć długość najdłuższego podciągu, czyli ciągu kolejnych liter, w którym po wprowadzonych zmianach występuje tylko jedna powtarzająca się litera.

Funkcja

characterReplacement(s: string, k: integer) → integer
sstring
ciąg wielkich liter
kinteger
największa liczba liter, które możesz zmienić
Zwracainteger
długość najdłuższego podciągu składającego się z powtarzającej się litery, jaki możesz utworzyć

Ograniczenia

  • 1 ≤ s.length ≤ 5 × 104
  • s zawiera wyłącznie wielkie litery alfabetu angielskiego.
  • 0 ≤ k ≤ s.length

Przykłady

Wejście
s = "BAAACAB"k = 1
Wyjście
5
Wyjaśnienie
Zmień C na A, a indeksy od 1 do 5 będą zawierać AAAAA. Sześć liter wymagałoby dwóch zmian: indeksy od 0 do 5 zawierają B i C, a indeksy od 1 do 6 zawierają C i ostatnie B.

lock icon+17 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Co się zmieni, jeśli s może zawierać dowolny znak, a nie tylko 26 wielkich liter?

Zresetuj kod
def characterReplacement(s, k):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

s = "BAAACAB"
k = 1

Oczekiwane

5