Leetcode: 3258. 统计满足 K 约束的子字符串数量 I
一、题目
1 | Leetcode 3258题: |
二、输入
1 | s 和 k |
三、输出
1 | 返回一个整数,表示 s 的所有满足 k 约束 |
四、示例
示例一
1 | 输入: |
- 解释:s 的所有子字符串中,除了 “1010”、”10101” 和 “0101” 外,其余子字符串都满足 k 约束。
示例二
1 | 输入: |
五、题解
- 这题是 LeetCode 简单题,实际做起来不简单
- 先理解题意子字符串是连续的,满足任一个最多 K 个字符的条件
- 一开始往排列组合集合方向想就复杂了
- 暴力方法是两重遍历,参考下面 Java 解法
- 优化的方法是滑动窗口,参考下面的 Python 解法。统计方法是针对每一个右边界位置,在满足题目条件时,累加符合条件的左边界字符个数,也就是
right - left + 1
5.1 Java 实现
1 | class Solution { |
5.2 Python实现
1 | class Solution: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 石头记!