Leetcode--424. 替换后的最长重复字符
发布日期:2021-04-30 21:05:46 浏览次数:99 分类:精选文章

本文共 1911 字,大约阅读时间需要 6 分钟。

??????????????????????k????????????????????????????????????????????

????

  • ?????????????????(i)????(j)??????????????????????????????????
  • ????????????????????????
  • ????????????????????????????????????????????????????????????????????????????????????????????????????
  • ????????????????????????????????????????????
  • ???????????????????????????????????????????

    ????

    public class Solution424 {
    public static int characterReplacement(String s, int k) {
    int i = 0, j = 0, max_len = 0, current_char = s.charAt(0);
    int n = s.length();
    if (n == 0) {
    return 0;
    }
    int k_remaining = k;
    while (j < n) {
    if (s.charAt(j) == current_char) {
    j++;
    } else {
    if (k_remaining > 0) {
    current_char = s.charAt(j) = current_char;
    k_remaining--;
    } else {
    int window_length = j - i + 1;
    if (window_length > max_len) {
    max_len = window_length;
    }
    i = j + 1;
    if (i < n) {
    current_char = s.charAt(i);
    }
    }
    }
    }
    return max_len;
    }
    public static void main(String[] args) {
    // ????1
    String s = "ABAB";
    int k = 2;
    System.out.println(characterReplacement(s, k)); // ??4
    // ????2
    String s = "AABABBA";
    int k = 1;
    System.out.println(characterReplacement(s, k)); // ??4
    // ????3
    String s = "ABBB";
    int k = 2;
    System.out.println(characterReplacement(s, k)); // ??4
    }
    }

    ????

    • ???????(i)????(j)??????????????????????
    • ?????????????????????????????????????????????
    • ?????????????????????????????
    • ??????????????????????????????????

    ????????O(n)??????????????????????104????

    上一篇:JavaScript面向对象编程
    下一篇:Leetcode--1160.拼写单词(Java)

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2026年06月18日 03时06分07秒