Menu
CoddyTech

Longest Repeating Character Replacement

대문자 영어 문자로 이루어진 문자열 s와 정수 k가 주어집니다. s에서 최대 k개의 위치를 선택하고, 각 위치의 문자를 다른 대문자로 바꿀 수 있습니다.

변경을 마친 후 같은 문자가 반복되는 부분 문자열, 즉 서로 인접한 문자들의 연속 구간 중 가장 긴 것의 길이를 반환하세요.

함수

characterReplacement(s: string, k: integer) → integer
sstring
대문자 문자열
kinteger
변경할 수 있는 최대 글자 수
반환값integer
만들 수 있는 동일한 문자가 반복되는 가장 긴 부분 문자열의 길이

제약 조건

  • 1 ≤ s.length ≤ 5 × 104
  • s에는 영어 대문자만 들어 있습니다.
  • 0 ≤ k ≤ s.length

예제

입력
s = "BAAACAB"k = 1
출력
5
설명
C를 A로 바꾸면 인덱스 1부터 5까지는 AAAAA로 읽힙니다. 문자 6개를 바꾸려면 두 번 변경해야 합니다. 인덱스 0부터 5까지에는 B와 C가 있고, 인덱스 1부터 6까지에는 C와 마지막 B가 있습니다.

lock icon제출 시 숨은 테스트 +17개

challenge icon

후속 질문

s가 26개의 대문자뿐만 아니라 모든 문자를 담을 수 있다면 무엇이 달라질까요?

코드 초기화
def characterReplacement(s, k):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

s = "BAAACAB"
k = 1

기대값

5