当前位置: 首页 > news >正文

LeetCode:3258.统计满足k约束的子串数量 I(滑动窗口 Java)

目录

3258.统计满足k约束的子串数量 I

题目描述:

实现代码与解析:

滑动窗口

原理思路:


3258.统计满足k约束的子串数量 I

题目描述:

        给你一个 二进制 字符串 s 和一个整数 k

如果一个 二进制字符串 满足以下任一条件,则认为该字符串满足 k 约束

  • 字符串中 0 的数量最多为 k
  • 字符串中 1 的数量最多为 k

返回一个整数,表示 s 的所有满足 k 约束 的子字符串的数量。

示例 1:

输入:s = "10101", k = 1

输出:12

解释:

s 的所有子字符串中,除了 "1010""10101" 和 "0101" 外,其余子字符串都满足 k 约束。

示例 2:

输入:s = "1010101", k = 2

输出:25

解释:

s 的所有子字符串中,除了长度大于 5 的子字符串外,其余子字符串都满足 k 约束。

示例 3:

输入:s = "11111", k = 1

输出:15

解释:

s 的所有子字符串都满足 k 约束。

提示:

  • 1 <= s.length <= 50
  • 1 <= k <= s.length
  • s[i] 是 '0' 或 '1'

Related Topics

  • 字符串
  • 滑动窗口

实现代码与解析:

滑动窗口

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {public int countKConstraintSubstrings(String s, int k) {int n = s.length();int res = 0;int l = 0;int cnt0 = 0, cnt1 = 0;for (int r = 0; r < n; r++) {if (s.charAt(r) == '0') {cnt0++;}if (s.charAt(r) == '1') {cnt1++;}while (cnt0 > k && cnt1 > k) {if (s.charAt(l) == '0') cnt0--;if (s.charAt(l) == '1') cnt1--;l++;}res += r - l + 1;}return res;}
}
//leetcode submit region end(Prohibit modification and deletion)

原理思路:

        遍历右指针,记录0和1的个数,求出当前右指针情况下,满足条件的最长长度。如果满足条件,收缩左指针,直到满足条件。

http://www.lryc.cn/news/463310.html

相关文章:

  • 如果用Java设计MySQL中表级锁、行级锁和间歇锁会是怎么的?
  • GIT batch的支持中文的方法和系统建议
  • 骑砍霸主MOD天芒传奇Ⅱ·前传-序章
  • 神经网络量化基础
  • 飞机大战告尾
  • 支持向量机SVM原理详解
  • 使用JMeter进行Spring Boot接口的压力测试
  • C++学习笔记----9、发现继承的技巧(三)---- 尊重父类(1)
  • 启动service报错ORA-44317: database open read-only
  • GNU/Linux - Savannah项目
  • Debug-028-el-carousel走马灯-当展示图片为2的问题处理
  • TapData 知识库 | 一文吃透数据整合(Data Consolidation)
  • MySQL数据的导出
  • 微服务--OpenFeign【重点】
  • 【力扣打卡系列】滑动窗口与双指针(两数之和)
  • 蚂蚁华东师范大学:从零开始学习定义和解决一般优化问题LLMOPT
  • 价格游戏的终章:品牌如何在通货膨胀时代智取市场
  • CVTE Android面试题及参考答案
  • Docker实战:从入门到进阶
  • Jupyter Notebook汉化(中文版)
  • C#的小数位保留以及四舍五入
  • KNNImputer
  • RHCE例行性工作笔记
  • ros2 action server示例、拓展、练习
  • 【Go语言】安装及使用基础教程
  • 【大模型】3分钟了解提示(Prompt)工程、检索增强(RAG)和微调
  • 太速科技-509-基于XCVU13P的4路QSFP28光纤PCIeX16收发卡
  • C#从零开始学习(基本语法概念)(2)
  • 基于SSM+微信小程序的家庭记账本管理系统(家庭1)
  • MEMC功能详解