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

【优选算法】滑动窗口 串联所有单词的⼦串

在这里插入图片描述

算法思路:
如果我们把每⼀个单词看成⼀个⼀个字⺟,问题就变成了找到「字符串中所有的字⺟异位词」。⽆⾮就是之前处理的对象是⼀个⼀个的字符,我们这⾥处理的对象是⼀个⼀个的单词。

class Solution {
public:
    vector<int> findSubstring(string s, vector<string>& words) {
        vector<int> ret;
        unordered_map<string,int> hash1;
        for(auto& s:words) hash1[s]++;

        int len=words[0].size(),m=words.size();
        for(int i=0;i<len;i++)
        {
             unordered_map<string,int> hash2;
            for(int left=i,right=i,count=0;right+len<=s.size();right+=len)
            {
                string in=s.substr(right,len);
                hash2[in]++;
                if(hash2[in]<=hash1[in]) count++;
                if(right-left+1>len*m)
                {
                    string out=s.substr(left,len);
                    if(hash2[out]<=hash1[out]) count--;
                    hash2[out]--;
                    left+=len;
                }
                if(count==m) ret.push_back(left);
            }
        } 
        return ret;
    }
};
http://www.dtcms.com/a/45405.html

相关文章:

  • JBoltAI_SpringBoot如何区分DeepSeek R1深度思考和具体回答的内容(基于Ollama)?
  • 计算机毕业设计SpringBoot+Vue.js手机商城 (源码+文档+PPT+讲解)
  • 图书管理系统框架构建的收获
  • rdiff-backup备份
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 6
  • Java中的大数据流处理框架与技术比较
  • 计算机毕业设计SpringBoot+Vue.js公司日常考勤系统(源码+文档+PPT+讲解)
  • SourceTree配置SSH步骤详解
  • SAP-ABAP:SAP数据库视图(Database View)详解-创建
  • CAN硬件协议详解
  • 怎么排查页面响应慢的问题
  • Nginx系列09(Nginx 与其他服务集成、实战项目)
  • 机器学习:线性回归,梯度下降
  • freertos 学习5--链路状态设置
  • 房屋租赁|房屋租赁系统|基于Springboot的房屋租赁系统设计与实现(源码+数据库+文档)
  • k8s出问题后 应该查看哪些内容
  • QT基础十、表格组件:QTableWidget
  • Text-to-SQL将自然语言转换为数据库查询语句
  • 【网络安全】敏感字段扫描工具(可用于漏洞挖掘、代码审计)
  • 为什么深度学习选择Tensor而非NumPy数组?核心优势深度解析
  • 两道算法练习
  • 论文笔记-NeurIPS2017-DropoutNet
  • 一周一个Unity小游戏2D反弹球游戏 - 球的死区及球重生
  • SpringBoot新闻推荐系统设计与实现
  • AtCoder Beginner Contest 395 题解ABCDEF
  • android studio gradle 阿里镜像
  • Java基础语法练习34(抽象类-abstract)(抽象类最佳实践-模版设计模式)
  • 智能图像处理平台:图像处理配置类
  • Jenkins 自动打包项目镜像部署到服务器 ---(前端项目)
  • 算法教程:岛的最大面积