Menu
CoddyTech

Longest Repeating Character Replacement

中等滑动窗口python iconjava iconcpp iconc iconjs icon+10

你会得到一个由大写英文字母组成的字符串 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 的窗口都包含一个 B 和 C,所以都需要进行两次更改。
challenge icon

进阶

如果 s 可以存储任意字符,而不只是 26 个大写字母,会有什么变化?

重置代码
def characterReplacement(s, k):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

s = "BAAACAB"
k = 1

预期输出

5