Menu
CoddyTech

Longest Repeating Character Replacement

Trung bìnhCửa sổ trượtpython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một chuỗi s gồm các chữ cái tiếng Anh viết hoa và một số nguyên k. Bạn có thể chọn tối đa k vị trí trong s và đổi chữ cái ở mỗi vị trí thành một chữ cái viết hoa khác bất kỳ.

Trả về độ dài của đoạn con dài nhất (substring), tức một dãy chữ cái liền kề, có cùng một chữ cái được lặp lại sau khi bạn thay đổi.

Hàm

characterReplacement(s: string, k: integer) → integer
sstring
chuỗi chữ cái viết hoa
kinteger
số chữ cái tối đa mà bạn có thể thay đổi
Trả vềinteger
độ dài của chuỗi con dài nhất gồm một chữ cái lặp lại mà bạn có thể tạo ra

Ràng buộc

  • 1 ≤ s.length ≤ 5 × 104
  • s chỉ chứa các chữ cái tiếng Anh viết hoa.
  • 0 ≤ k ≤ s.length

Ví dụ

Đầu vào
s = "BAAACAB"k = 1
Đầu ra
5
Giải thích
Đổi C thành A sẽ khiến các chỉ số từ 1 đến 5 tạo thành AAAAA. Cả hai cửa sổ gồm sáu ký tự đều chứa một B và ký tự C, nên mỗi cửa sổ cần đổi hai ký tự.
challenge icon

Câu hỏi mở rộng

Điều gì thay đổi nếu s có thể chứa bất kỳ ký tự nào thay vì chỉ 26 chữ cái viết hoa?

Đặt lại code
def characterReplacement(s, k):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "BAAACAB"
k = 1

Đầu ra mong đợi

5