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

串联所有单词的字串 --- 滑动窗口

目录

一:题目

二:算法原理分析

三:代码实现


一:题目

题目链接:30. 串联所有单词的子串 - 力扣(LeetCode) 

同类型基础题链接:438. 找到字符串中所有字母异位词 - 力扣(LeetCode) 

二:算法原理分析

三:代码实现

class Solution {
public:
    vector<int> findSubstring(string s, vector<string>& words)
    {
        int len = words[0].size(), m = words.size();
        vector<int> ret;
        unordered_map<string, int> hash1;//words中各个字符串出现的次数
        for (auto& e : words)
        {
            hash1[e]++;
        }

        //滑动窗口执行len次
        for (int i = 0; i < len; i++)
        {
            unordered_map<string, int> hash2;
            for (int left = i, right = i, cont = 0; right < s.size(); right += len)
            {
                //进窗口+维护cont
                string in = s.substr(right, len);//取字串
                hash2[in]++;
                if (hash1.count(in) && hash2[in] <= hash1[in])
                    cont++;

                //判断
                if (right - left + 1 > len * m)
                {
                    //出窗口 +维护cont
                    string out = s.substr(left, len);
                    if (hash1.count(out) && hash2[out] <= hash1[out])
                        cont--;

                    hash2[out]--;
                    left += len;
                }

                if (cont == m)
                {
                    ret.push_back(left);
                }

            }
        }

        return ret;
    }
};

相关文章:

  • Python 网络请求利器:requests 包详解与实战
  • nt!KeRemoveQueue 函数分析之加入队列后进入等待状态
  • Verilog学习-1.模块的结构
  • 图灵逆向——题六-倚天剑
  • 费马小定理
  • FRP调用本地摄像头完成远程拍照
  • 2台8卡L20服务器集群推理方案
  • FlashDB 在嵌入式系统中占用硬件资源
  • 2025 跨平台技术如何选:KMP 与 Flutter 的核心差异
  • 【ISP】ISP pipeline(AI)
  • 创建采购申请报错不可能为销售订单或项目库存确定科目 消息号 ME558
  • dubbo配置中心
  • 内核态切换到用户态
  • ①(PROFINET 转 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 【Nodebb系列】Nodebb笔记写入方案
  • DDPM理论基础解析
  • 使用chainlit出现【无法访问服务器】或【Could not reach the server.】解决方案
  • Redis的主从复制
  • 解码AI大脑:Claude的思维显微镜与语言炼金术
  • 数学知识——矩阵乘法
  • 建设网站如何赚钱/全自动引流推广软件app
  • 专业排名优化网站/游戏推广员平台
  • 网站备案 每年/seo软件服务
  • 青岛网站制作套餐/网站收录
  • 网站建设 尚瑞科技/营销对企业的重要性
  • 域名与网站区别/ip或域名查询网