Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2023-01-06:给定一个只由小写字母组成的字符串str,长度为N,给定一个只由0、1组成的数组arr,长度为N,arr[i

2023-01-06:给定一个只由小写字母组成的字符串str,长度为N,给定一个只由0、1组成的数组arr,长度为N,arr[i

作者头像
福大大架构师每日一题
发布于 2023-02-01 03:56:50
发布于 2023-02-01 03:56:50
63000
代码可运行
举报
运行总次数:0
代码可运行

2023-01-06:给定一个只由小写字母组成的字符串str,长度为N,

给定一个只由0、1组成的数组arr,长度为N,

arr[i]等于 0 表示str中i位置的字符不许修改,

arr[i] 等于 1表示str中i位置的字符允许修改,

给定一个正数m,表示在任意允许修改的位置,

可以把该位置的字符变成a~z中的任何一个,

可以修改m次。

返回在最多修改m次的情况下,全是一种字符的最长子串是多长。

1 <= N, M <= 10^5,

所有字符都是小写。

来自字节。

答案2023-01-06:

尝试全变成a一直到全变成z,遍历26次。每次滑动窗口。

时间复杂度:O(N)。

空间复杂度:O(1)。

代码用rust和solidity编写。

代码用rust编写。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use rand::Rng;
use std::{iter::repeat, vec};
fn main() {
    let str = "bbbcdbcade";
    let mut arr = vec![1, 1, 0, 1, 0, 1, 0, 0, 1, 0];
    let m = 4;
    let ans = max_len2(&str, &mut arr, m);
    println!("ans = {}", ans);
    let nn: i32 = 100;
    let rr: i32 = 5;
    let test_time: i32 = 5000;
    println!("测试开始");
    for i in 0..test_time {
        let n = rand::thread_rng().gen_range(0, nn) + 1;
        let m = rand::thread_rng().gen_range(0, n) + 1;
        let str = random_string(n, rr);
        let mut arr = random_array(n);
        let ans1 = max_len1(&str, &mut arr, m);
        let ans2 = max_len2(&str, &mut arr, m);
        if ans1 != ans2 {
            println!("出错了!{}", i);
            println!("str = {}", str);
            println!("arr = {:?}", arr);
            println!("m = {}", m);
            println!("ans1 = {}", ans1);
            println!("ans2 = {}", ans2);
            break;
        }
    }
    println!("测试结束");
}

// 暴力方法
// 为了测试
fn max_len1(str1: &str, arr: &mut Vec<i32>, m: i32) -> i32 {
    let s = str1.as_bytes();
    let n = s.len() as i32;
    let mut ans = 0;
    for c in 'a' as u8..='z' as u8 {
        for i in 0..n {
            let mut j = n - 1;
            while j >= i {
                if ok(s, i, j, c, arr, m) {
                    ans = get_max(ans, j - i + 1);
                    break;
                }
                j -= 1;
            }
        }
    }
    return ans;
}

// 为了测试
fn ok(s: &[u8], l: i32, r: i32, c: u8, arr: &mut Vec<i32>, mut m: i32) -> bool {
    for i in l..=r {
        if s[i as usize] == c {
            continue;
        }
        if arr[i as usize] == 0 || m == 0 {
            return false;
        }
        m -= 1;
    }
    return true;
}

// 正式方法
fn max_len2(str1: &str, arr: &mut Vec<i32>, m: i32) -> i32 {
    let s = str1.as_bytes();
    let n = s.len() as i32;
    let mut ans = 0;
    for aim in 'a' as u8..='z' as u8 {
        // 右边界
        // [l..r)
        let mut r = 0;
        // 用了几次修改了
        // change == m 用完的时候
        let mut change = 0;
        for l in 0..n {
            // l......r ->
            while r < n {
                if s[r as usize] == aim {
                    r += 1;
                    continue;
                }
                // s[r] != aim
                if arr[r as usize] == 0 || change == m {
                    break;
                }
                // s[r] != aim && arr[r] == 1 && change < m
                change += 1;
                r += 1;
            }
            // l....r-1 r
            // X l+1
            ans = get_max(ans, r - l);
            if s[l as usize] != aim && arr[l as usize] == 1 {
                change -= 1;
            }
            // r r
            // l l
            // X
            r = get_max(r, l + 1);
        }
    }
    return ans;
}

fn get_max<T: Clone + Copy + std::cmp::PartialOrd>(a: T, b: T) -> T {
    if a > b {
        a
    } else {
        b
    }
}

// 为了测试
fn random_string(n: i32, r: i32) -> String {
    let mut arr = String::new();
    for _i in 0..n {
        arr.push((rand::thread_rng().gen_range(0, r) as u8 + 'a' as u8) as char);
    }
    return arr;
}

// 为了测试
fn random_array(n: i32) -> Vec<i32> {
    let mut arr: Vec<i32> = vec![];
    for _i in 0..n {
        arr.push(rand::thread_rng().gen_range(0, 2));
    }
    return arr;
}

代码用solidity编写。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract Hello{
    function main() public pure returns (int32){
    bytes memory s = "bbbcdbcade";
    int32[] memory arr = new int32[](10);
    arr[0] = 1;
    arr[1] = 1;
    arr[2] = 0;
    arr[3] = 1;
    arr[4] = 0;
    arr[5] = 1;
    arr[6] = 0;
    arr[7] = 0;
    arr[8] = 1;
    arr[9] = 0;
    int32 m = 4;
    return maxLen2(s,arr,m);
    }

  // 正式方法
  function maxLen2(bytes memory s, int32[] memory arr, int32 m) public pure returns (int32){
    int32 n = int32(int(s.length));
    int32 ans = 0;
    for (bytes1 aim = 'a'; aim <='z'; aim = bytes1(uint8(aim)+1)) {
      // 右边界
      // [l..r)
      int32 r = 0;
      // 用了几次修改了
      // change == m 用完的时候
      int32 change = 0;
      for (int32 l = 0; l < n; l++) {
        // l......r ->
        while (r < n) {
          if (s[uint32(r)] == aim) {
            r++;
            continue;
          }
          // s[r] != aim
          if (arr[uint32(r)] == 0 || change == m) {
            break;
          }
          // s[r] != aim && arr[r] == 1 && change < m
          change++;
          r++;
        }
        // l....r-1 r
        // X l+1
        ans = getMax(ans, r - l);
        if (s[uint32(l)] != aim && arr[uint32(l)] == 1) {
          change--;
        }
        // r r
        // l l
        // X
        r = getMax(r, l + 1);
      }
    }
    return ans;
  }

    function getMax(int32 a,int32 b) public pure returns (int32){
        if(a>b){
            return a;
        }else{
            return b;
        }
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2022-11-01:给定一个只由小写字母和数字字符组成的字符串str。 要求子串必须只含有一个小写字母,数字字符数量随意。 求这样的子串最大长度是多少?
2022-11-01:给定一个只由小写字母和数字字符组成的字符串str。 要求子串必须只含有一个小写字母,数字字符数量随意。 求这样的子串最大长度是多少? 答案2022-11-01: 经典的滑动窗口问题。 时间复杂度:O(N)。 空间复杂度:O(1)。 代码用rust编写。代码如下: use rand::Rng; fn main() { let nn: i32 = 100; let test_time: i32 = 10000; println!("测试开始"); for _
福大大架构师每日一题
2022/11/01
3770
2022-11-01:给定一个只由小写字母和数字字符组成的字符串str。 要求子串必须只含有一个小写字母,数字字符数量随意。 求这样的子串最大长度是多少?
2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是
2023-03-02:给定一个数组arr,长度为n,任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的!求所有可能的合法子序列中,最大中位数是多少?中位数的定义为上中位数,1, 2, 3, 4的上中位数是2,1, 2, 3, 4, 5的上中位数是3,2 <= n <= 10^5,1 <= arri <= 10^9。来自京东。实习岗位笔试题。答案2023-03-02:这道题看起来是实习题,实际上有难度。方法一:要i还是不要i,递归或者动态规划。方法二:以结果为导向,二分法。时间复杂度:O(N*
福大大架构师每日一题
2023/03/02
5640
2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是
2022-07-23:给定N件物品,每个物品有重量(w[i])、有价值(v[i]), 只能最多选两件商品,重量不超过bag,返回价值最大能是多少? N <= 1
N <= 10^5, wi <= 10^5, vi <= 10^5, bag <= 10^5。
福大大架构师每日一题
2022/07/23
1550
2022-07-23:给定N件物品,每个物品有重量(w[i])、有价值(v[i]), 只能最多选两件商品,重量不超过bag,返回价值最大能是多少? N <= 1
2023-01-14:给定一个二维数组map,代表一个餐厅,其中只有0、1两种值 map[i][j] == 0 表示(i,j)位置是空座 map[i][j] =
2023-01-14:给定一个二维数组map,代表一个餐厅,其中只有0、1两种值mapi == 0 表示(i,j)位置是空座mapi == 1 表示(i,j)位置坐了人根据防疫要求,任何人的上、下、左、右,四个相邻的方向都不能再坐人但是为了餐厅利用的最大化,也许还能在不违反防疫要求的情况下,继续安排人吃饭请返回还能安排的最大人数如果一开始的状况已经不合法,直接返回-1比如:1 0 0 00 0 0 1不违反防疫要求的情况下,这个餐厅最多还能安排2人,如下所示,X是新安排的人1 0 X 00 X 0 1再比如
福大大架构师每日一题
2023/01/14
5310
2023-01-14:给定一个二维数组map,代表一个餐厅,其中只有0、1两种值 map[i][j] == 0 表示(i,j)位置是空座 map[i][j] =
2022-05-21:给定一个数组arr,长度为n, 表示n个服务员,每个人服务一个人的时间。 给定一个正数m,表示有m个人等位。 如果你是刚来的人,请问你需要
2022-05-21:给定一个数组arr,长度为n, 表示n个服务员,每个人服务一个人的时间。 给定一个正数m,表示有m个人等位。 如果你是刚来的人,请问你需要等多久? 假设:m远远大于n,比如n<=1000, m <= 10的9次方,该怎么做? 来自谷歌。 答案2022-05-21: 方法一:小根堆。时间复杂度:O(m*logN)。 方法二:二分法。时间复杂度:O(N*logm)。 代码用rust编写。代码如下: use rand::Rng; fn main() { let len: i32 =
福大大架构师每日一题
2022/05/21
2870
2022-05-21:给定一个数组arr,长度为n, 表示n个服务员,每个人服务一个人的时间。 给定一个正数m,表示有m个人等位。 如果你是刚来的人,请问你需要
2022-06-23:给定一个非负数组,任意选择数字,使累加和最大且为7的倍数,返回最大累加和。 n比较大,10的5次方。 来自美团。3.26笔试。
2022-06-23:给定一个非负数组,任意选择数字,使累加和最大且为7的倍数,返回最大累加和。
福大大架构师每日一题
2022/06/23
3070
2022-06-23:给定一个非负数组,任意选择数字,使累加和最大且为7的倍数,返回最大累加和。 n比较大,10的5次方。 来自美团。3.26笔试。
2022-07-05:给定一个数组,想随时查询任何范围上的最大值。 如果只是根据初始数组建立、并且以后没有修改, 那么RMQ方法比线段树方法好实现,时间复杂度O
那么RMQ方法比线段树方法好实现,时间复杂度O(NlogN),额外空间复杂度O(NlogN)。
福大大架构师每日一题
2022/07/05
5300
2022-07-05:给定一个数组,想随时查询任何范围上的最大值。 如果只是根据初始数组建立、并且以后没有修改, 那么RMQ方法比线段树方法好实现,时间复杂度O
2022-05-27:现在有N条鱼,每条鱼的体积为Ai,从左到右排列,数组arr给出。 每一轮,左边的大鱼一定会吃掉右边比自己小的第一条鱼, 并且每条鱼吃比自己
2022-05-27:现在有N条鱼,每条鱼的体积为Ai,从左到右排列,数组arr给出。
福大大架构师每日一题
2022/05/27
2110
2022-05-27:现在有N条鱼,每条鱼的体积为Ai,从左到右排列,数组arr给出。 每一轮,左边的大鱼一定会吃掉右边比自己小的第一条鱼, 并且每条鱼吃比自己
2023-01-12:一个n*n的二维数组中,只有0和1两种值, 当你决定在某个位置操作一次, 那么该位置的行和列整体都会变成1,不管之前是什么状态。 返回让所
2023-01-12:一个n*n的二维数组中,只有0和1两种值,当你决定在某个位置操作一次,那么该位置的行和列整体都会变成1,不管之前是什么状态。返回让所有值全变成1,最少的操作次数。1 < n < 10,没错!原题就是说n < 10, 不会到10!最多到9!来自华为。答案2023-01-12:四维dp+贪心。这道题优化力度很有限,跟暴力差不多。代码用rust和solidity编写。代码用solidity编写。代码如下:// SPDX-License-Identifier: MITpragma solidi
福大大架构师每日一题
2023/01/12
1.8K0
2023-01-12:一个n*n的二维数组中,只有0和1两种值, 当你决定在某个位置操作一次, 那么该位置的行和列整体都会变成1,不管之前是什么状态。 返回让所
2022-07-03:数组里有0和1,一定要翻转一个区间,翻转:0变1,1变0。 请问翻转后可以使得1的个数最多是多少? 来自小红书。3.13笔试。
2022-07-03:数组里有0和1,一定要翻转一个区间,翻转:0变1,1变0。请问翻转后可以使得1的个数最多是多少?来自小红书。3.13笔试。答案2022-07-03:某个区间,0个数-1个数=最大值。0变成1,1变成-1,求子数组的最大累加和。代码用rust编写。代码如下:use rand::Rng;fn main() { let nn: i32 = 100; let test_time: i32 = 20000; println!("测试开始"); for i in 0..te
福大大架构师每日一题
2022/07/03
4280
2022-07-03:数组里有0和1,一定要翻转一个区间,翻转:0变1,1变0。 请问翻转后可以使得1的个数最多是多少? 来自小红书。3.13笔试。
2023-01-04:有三个题库A、B、C,每个题库均有n道题目,且题目都是从1到n进行编号 每个题目都有一个难度值 题库A中第i个题目的难度为ai 题库B中第
2023-01-04:有三个题库A、B、C,每个题库均有n道题目,且题目都是从1到n进行编号
福大大架构师每日一题
2023/01/04
4590
2023-01-04:有三个题库A、B、C,每个题库均有n道题目,且题目都是从1到n进行编号 每个题目都有一个难度值 题库A中第i个题目的难度为ai 题库B中第
2022-05-25:最大子段和是 一个经典问题,即对于一个数组找出其和最大的子数组。 现在允许你在求解该问题之前翻转这个数組的连续一段, 如翻转(1,2,3,
如翻转(1,2,3,4,5,6)的第三个到第五个元素組成的子数组得到的是(1,2,5,4,3,6),
福大大架构师每日一题
2022/05/25
4360
2022-05-25:最大子段和是 一个经典问题,即对于一个数组找出其和最大的子数组。 现在允许你在求解该问题之前翻转这个数組的连续一段, 如翻转(1,2,3,
2023-03-22:给定一个字符串str, 如果删掉连续一段子串,剩下的字符串拼接起来是回文串, 那么该删除叫做有效的删除。 返回有多少种有效删除。 注意 :
首先,我们来看如何判断一个字符串是否是回文串。我们可以使用双指针法,即左右指针分别指向字符串的头部和尾部,然后向中间扫描,逐个比较对应位置上的字符。若对应位置上的字符不相等,则该字符串不是回文串;否则,该字符串是回文串。
福大大架构师每日一题
2023/03/22
6550
2023-03-22:给定一个字符串str, 如果删掉连续一段子串,剩下的字符串拼接起来是回文串, 那么该删除叫做有效的删除。 返回有多少种有效删除。 注意 :
2022-06-27:给出一个长度为n的01串,现在请你找到两个区间, 使得这两个区间中,1的个数相等,0的个数也相等, 这两个区间可以相交,但是不可以完全重叠
L0=最左0和最右0的长度,L1=最左1和最右1的长度,求L0和L1的最大值即可。
福大大架构师每日一题
2022/06/27
5411
2022-06-27:给出一个长度为n的01串,现在请你找到两个区间, 使得这两个区间中,1的个数相等,0的个数也相等, 这两个区间可以相交,但是不可以完全重叠
2022-07-01:某公司年会上,大家要玩一食发奖金游戏,一共有n个员工, 每个员工都有建设积分和捣乱积分, 他们需要排成一队,在队伍最前面的一定是老板
该员工奖金 = 排在他前面所有人的建设积分乘积 / 该员工自己的捣乱积分,向下取整,
福大大架构师每日一题
2022/07/01
2960
2022-07-01:某公司年会上,大家要玩一食发奖金游戏,一共有n个员工, 每个员工都有建设积分和捣乱积分, 他们需要排成一队,在队伍最前面的一定是老板
2022-07-11:给定n位长的数字字符串和正数k,求该子符串能被k整除的子串个数。
2022-07-11:给定n位长的数字字符串和正数k,求该子符串能被k整除的子串个数。
福大大架构师每日一题
2022/07/11
5420
2022-07-11:给定n位长的数字字符串和正数k,求该子符串能被k整除的子串个数。
2022-08-06:给定一个数组arr,长度为N,arr中所有的值都在1~K范围上, 你可以删除数字,目的是让arr的最长递增子序列长度小于K。 返回至少删除
2022-08-06:给定一个数组arr,长度为N,arr中所有的值都在1~K范围上,
福大大架构师每日一题
2022/08/06
9870
2022-08-06:给定一个数组arr,长度为N,arr中所有的值都在1~K范围上, 你可以删除数字,目的是让arr的最长递增子序列长度小于K。 返回至少删除
2022-05-23:给定一个数组arr,你可以随意挑选其中的数字, 但是你挑选的数中,任何两个数a和b,必须Math.abs(a - b) > 1。 返回你最
let n: i32 = rand::thread_rng().gen_range(0, len) + 1;
福大大架构师每日一题
2022/05/23
5130
2022-05-23:给定一个数组arr,你可以随意挑选其中的数字, 但是你挑选的数中,任何两个数a和b,必须Math.abs(a - b) > 1。 返回你最
2022-07-21:给定一个字符串str,和一个正数k, 你可以随意的划分str成多个子串, 目的是找到在某一种划分方案中,有尽可能多的回文子串,长度>=k,
2022-07-21:给定一个字符串str,和一个正数k,你可以随意的划分str成多个子串,目的是找到在某一种划分方案中,有尽可能多的回文子串,长度>=k,并且没有重合。返回有几个回文子串。来自optiver。答案2022-07-21:马拉车算法+贪心。代码用rust编写。代码如下:use rand::Rng;fn main() { let n: i32 = 20; let r = 3; let test_time: i32 = 50000; println!("测试开始");
福大大架构师每日一题
2022/07/21
5090
2022-07-21:给定一个字符串str,和一个正数k, 你可以随意的划分str成多个子串, 目的是找到在某一种划分方案中,有尽可能多的回文子串,长度>=k,
2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组, 求剩下的数组,严格连续递增的子数组最大长度。 n <= 10^6。 来自字节。
2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组,求剩下的数组,严格连续递增的子数组最大长度。n <= 10^6。来自字节。5.6笔试。答案2022-08-22:动态规划+线段树。代码用rust编写。代码如下:use rand::Rng;fn main() { let n: i32 = 100; let v: i32 = 20; let test_time: i32 = 50000; println!("测试开始"); for _ in 0..te
福大大架构师每日一题
2022/08/22
5450
2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组, 求剩下的数组,严格连续递增的子数组最大长度。 n <= 10^6。 来自字节。
推荐阅读
2022-11-01:给定一个只由小写字母和数字字符组成的字符串str。 要求子串必须只含有一个小写字母,数字字符数量随意。 求这样的子串最大长度是多少?
3770
2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是
5640
2022-07-23:给定N件物品,每个物品有重量(w[i])、有价值(v[i]), 只能最多选两件商品,重量不超过bag,返回价值最大能是多少? N <= 1
1550
2023-01-14:给定一个二维数组map,代表一个餐厅,其中只有0、1两种值 map[i][j] == 0 表示(i,j)位置是空座 map[i][j] =
5310
2022-05-21:给定一个数组arr,长度为n, 表示n个服务员,每个人服务一个人的时间。 给定一个正数m,表示有m个人等位。 如果你是刚来的人,请问你需要
2870
2022-06-23:给定一个非负数组,任意选择数字,使累加和最大且为7的倍数,返回最大累加和。 n比较大,10的5次方。 来自美团。3.26笔试。
3070
2022-07-05:给定一个数组,想随时查询任何范围上的最大值。 如果只是根据初始数组建立、并且以后没有修改, 那么RMQ方法比线段树方法好实现,时间复杂度O
5300
2022-05-27:现在有N条鱼,每条鱼的体积为Ai,从左到右排列,数组arr给出。 每一轮,左边的大鱼一定会吃掉右边比自己小的第一条鱼, 并且每条鱼吃比自己
2110
2023-01-12:一个n*n的二维数组中,只有0和1两种值, 当你决定在某个位置操作一次, 那么该位置的行和列整体都会变成1,不管之前是什么状态。 返回让所
1.8K0
2022-07-03:数组里有0和1,一定要翻转一个区间,翻转:0变1,1变0。 请问翻转后可以使得1的个数最多是多少? 来自小红书。3.13笔试。
4280
2023-01-04:有三个题库A、B、C,每个题库均有n道题目,且题目都是从1到n进行编号 每个题目都有一个难度值 题库A中第i个题目的难度为ai 题库B中第
4590
2022-05-25:最大子段和是 一个经典问题,即对于一个数组找出其和最大的子数组。 现在允许你在求解该问题之前翻转这个数組的连续一段, 如翻转(1,2,3,
4360
2023-03-22:给定一个字符串str, 如果删掉连续一段子串,剩下的字符串拼接起来是回文串, 那么该删除叫做有效的删除。 返回有多少种有效删除。 注意 :
6550
2022-06-27:给出一个长度为n的01串,现在请你找到两个区间, 使得这两个区间中,1的个数相等,0的个数也相等, 这两个区间可以相交,但是不可以完全重叠
5411
2022-07-01:某公司年会上,大家要玩一食发奖金游戏,一共有n个员工, 每个员工都有建设积分和捣乱积分, 他们需要排成一队,在队伍最前面的一定是老板
2960
2022-07-11:给定n位长的数字字符串和正数k,求该子符串能被k整除的子串个数。
5420
2022-08-06:给定一个数组arr,长度为N,arr中所有的值都在1~K范围上, 你可以删除数字,目的是让arr的最长递增子序列长度小于K。 返回至少删除
9870
2022-05-23:给定一个数组arr,你可以随意挑选其中的数字, 但是你挑选的数中,任何两个数a和b,必须Math.abs(a - b) > 1。 返回你最
5130
2022-07-21:给定一个字符串str,和一个正数k, 你可以随意的划分str成多个子串, 目的是找到在某一种划分方案中,有尽可能多的回文子串,长度>=k,
5090
2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组, 求剩下的数组,严格连续递增的子数组最大长度。 n <= 10^6。 来自字节。
5450
相关推荐
2022-11-01:给定一个只由小写字母和数字字符组成的字符串str。 要求子串必须只含有一个小写字母,数字字符数量随意。 求这样的子串最大长度是多少?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验