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

力扣每日一题 3258. 统计满足 K 约束的子字符串数量 I

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

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

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

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

如果数据范围大的话,这题目还真有点难度。但是它的数据太小了,直接暴力就行,只能算简单中的简单了。思路没啥可说的,就按题目要求的做,找到所有的子串,然后检查是否满足0和1的数量最多为k

class Solution {
public:
    vector<string> enumerate(string s)
    {
        vector<string> ret;
        int d=1, len=s.length();
        while (d<=len)
        {
            for (int i=0; i<=len-d; ++i)
            {
                ret.push_back(s.substr(i, d));
                cout << s.substr(i, d) << endl;
            }
            ++d;
        }
        return ret;
    }
    bool k_strain(string s, int k)
    {
        int num0=0, num1=0;
        for (char i:s)
        {
            if (i&1) ++num1;
            else ++num0;
        }
        return num0<=k || num1<=k;
    }
    int countKConstraintSubstrings(string s, int k) {
        vector<string> vec = enumerate(s);
        printf("%d\n", vec.size());
        int ans = 0;
        for (auto i:vec)
        {
            if (k_strain(i, k)) ++ans;
        }
        return ans;
    }
};

时间复杂度应该算O(n^3),n表示字符串的长度,空间复杂度应该是O(n*n)


http://www.kler.cn/a/391036.html

相关文章:

  • VS2022 安装和配置 vcpkg
  • React Router底层核心原理详解
  • 机器学习笔记 - 单幅图像深度估计的最新技术
  • 打开idea开发软件停留在加载弹出框页面进不去
  • .net core 为什么使用 null!
  • EyeSoothe: Your Ultimate Eye Health Companion
  • How to use ffmpeg to convert video format from .webm to .mp4
  • 低轨卫星互联网(二)—— 技术篇
  • 《青牛科技 GC6236:驱动芯片的卓越之选,重塑 IPcamera 和云台控制(替代 BU24036/ROHM)》
  • 第16章 SELECT 底层执行原理
  • linux详解,基本网络枚举
  • Golang | Leetcode Golang题解之第547题身份数量
  • 技术总结(二十五)
  • Spring Boot框架:计算机课程管理的工程认证之桥
  • 【数据管理】DAMA-数据建模和设计
  • Ollama服务以监听0.0.0.0地址
  • 剑指offer JZ33 二叉搜索树的后序遍历序列
  • 「QT」QT5程序设计专栏目录
  • 深入剖析输入URL按下回车,浏览器做了什么
  • jmeter常用配置元件介绍总结之后置处理器
  • 力扣 LeetCode 19. 删除链表的倒数第N个结点(Day2:链表)
  • FFmpeg存放压缩后的音视频数据的结构体:AVPacket简介,结构体,函数
  • Oracle Or子句
  • 网络安全名词解释
  • FPGA 第二讲 初始FPGA
  • 数据分析那些事儿——关于A/B实验