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

滑动窗口7:30. 串联所有单词的子串

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

滑动窗口基本解题思路:

  • 进窗口
  • 判断
  • 出窗口
  • 更新结果(该步骤顺序不固定,可能在进窗口时更新结果,也可能在判断成立时更新结果,也有可能在判断条件结束之后更新结果)
class Solution {
public:
    vector<int> findSubstring(string s, vector<string>& words) {
        vector<int> ans;
        // 记录words中的单词
        unordered_map<string, int> wCount;
        for (auto& e : words) wCount[e] += 1;

        int len = words[0].size();
        int num = words.size();
        //判断
        if (len * num > s.size()) return ans;

        // 记录滑动窗口中的单词
        int n = s.size();
        
        for (int i = 0; i < len; i++)
        {
            unordered_map<string, int> sCount;
            for (int left = i, right = i, count = 0; right < n; right+=len)
            {
                //进窗口
                string word1 = s.substr(right, len);
                sCount[word1] += 1;
                count++;
                //判断
                if (count > num)
                {
                    //出窗口
                    string word2 = s.substr(left, len);
                    sCount[word2] -= 1;
                    if (sCount[word2] == 0) sCount.erase(word2);
                    left += len;
                    count--;
                }
                //更新结果
                if (sCount == wCount) ans.emplace_back(left);
            }
        }
        return ans;
    }
};

相关文章:

  • 分布式数据库LSM树
  • 多模态大语言模型arxiv论文略读(七)
  • Unity-Xlua热更和AssetBundle详解
  • 上下拉电阻详解
  • RAG 系统中的偏差是什么?
  • 自定义数据结构的QVariant序列化 ASSERT failure in QVariant::save: “invalid type to save“
  • BetaFlight参数配置解读
  • 软考高项-考前冲刺资料-M 类【项目管理类】【光头张老师出品】
  • C++:模拟实现string
  • spring之Bean的循环依赖问题、反射机制手写Spring框架、Spring IoC注解式开发
  • 测试用例设计
  • 对抗Prompt工程:构建AI安全护栏的攻防实践
  • 精密空调的介绍
  • 《解码 C/C++ 关键字:科技编程的核心指令集》
  • 机器学习 Day09 线性回归
  • 在SQLark 中快速生成测试数据
  • ASP.NET图书馆借阅系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 小白入门JVM、字节码、类加载机制图解
  • STL常用容器整理
  • macbook pro查询并修改命令提示符的格式
  • 来论|建设性推进缅北和平进程——中国的智慧与担当
  • 外卖员投资失败负疚离家流浪,经民警劝回后泣不成声给父母下跪
  • 国家主席习近平同普京总统举行大范围会谈
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离
  • 新华时评:任凭风云变幻,中俄关系从容前行
  • 新消费观察| 零售品牌 “走出去” ,如何开辟“新蓝海”?