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

安徽省建设部干部网站陕西省工程建设交易服务中心网站

安徽省建设部干部网站,陕西省工程建设交易服务中心网站,网站建设的发展目标,wordpress frp目录 题目题目要求什么是“异位词”?如何快速判断两个字符串是否是“异位词”? 解法 滑动窗口 哈希表 (统计个数)核心思路具体步骤 代码 题目 题目链接:LeetCode-438题 给定两个字符串 s 和 p,找到 s 中所…

目录

  • 题目
    • 题目要求
      • 什么是“异位词”?
      • 如何快速判断两个字符串是否是“异位词”?
    • 解法 滑动窗口 + 哈希表 (统计个数)
      • 核心思路
      • 具体步骤
    • 代码

题目

题目链接:LeetCode-438题

给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。

题目要求

  1. 异位词 的子串
  2. 起始索引

什么是“异位词”?

异位词是指两个字符串的字符组成完全相同,但字符的顺序可以不同。例如,“abc” 和 “bca” 是异位词,而 “abc” 和 “abd” 不是。

如何快速判断两个字符串是否是“异位词”?

我们可以通过统计两个字符串中每个字符的个数来判断它们是否是异位词。如果两个字符串的字符统计结果完全相同,则它们是异位词。
利用哈希表来实现。
在这里插入图片描述

解法 滑动窗口 + 哈希表 (统计个数)

核心思路

  1. 滑动窗口:在字符串 s 上维护一个固定大小的窗口,窗口的大小等于字符串 p 的长度。

  2. 哈希表统计:使用哈希表统计窗口内字符的个数,并与 p 的字符统计结果进行比较。

  3. 优化:通过变量 count 统计窗口中“有效字符”的个数,避免每次比较整个哈希表。

优化:
利用变量count来统计窗口中“有效字符”的个数

  • 进窗口的字符,这个字符所对应的数如果<=对应p串对应字符的个数,则为有效字符,count++
  • 出窗口的字符,如果字符对应的数在出去之前>对应p串对应的字符的个数,则为无效字符,若为有效字符,count–;

具体步骤

  1. 初始化:
    • 统计字符串 p 的字符个数,存入哈希表 hashp。
    • 初始化滑动窗口的左边界 left = 0,右边界 right = 0。
    • 初始化变量 count,用于统计窗口中“有效字符”的个数。
  2. 滑动窗口:
    • 右边界 right 向右移动,将字符 s[right] 加入窗口,并更新哈希表 hashs。
    • 如果当前字符 s[right] 的个数不超过 p 中对应字符的个数,则 count++(表示这是一个有效字符)。
    • 如果窗口大小超过 p 的长度,则左边界 left 向右移动,将字符 s[left] 移出窗口,并更新哈希表 hashs。
    • 如果移出的字符 s[left] 的个数不超过 p 中对应字符的个数,则 count–(表示移出了一个有效字符)。
  3. 更新结果:
    • 如果 count 等于 p 的长度,说明当前窗口是一个异位词子串,记录起始索引 left。

代码

class Solution {
public:unordered_map<char,int> hashp;unordered_map<char,int> hashs;vector<int> ret;vector<int> findAnagrams(string s, string p) {//统计pfor(auto ch : p){hashp[ch] ++;}//滑动窗口int left = 0,right = 0;int count = 0;int m = p.size();for(right;right < s.size();right++){char in = s[right];//进入窗口hashs[in] ++;  //判断是否是有效字符,维护countif(hashs[in]<=hashp[in]) count++; if(right - left + 1 > m) {//出窗口char out = s[left];left++;//判断是否是有效字符,维护countif(hashs[out]<=hashp[out]) count--;hashs[out]--;} //更新结果if(count == m) ret.push_back(left);}return ret;}
};

文章转载自:

http://zJn77EyR.strbc.cn
http://RLLbsBc2.strbc.cn
http://hhrepxt7.strbc.cn
http://Wx1JnU8y.strbc.cn
http://FqwpPbhd.strbc.cn
http://qOxSCcDM.strbc.cn
http://Yxs3LRF5.strbc.cn
http://bKmP14ln.strbc.cn
http://vHtv6ZtY.strbc.cn
http://oudjxNce.strbc.cn
http://nonvHdFC.strbc.cn
http://RYr4JKPi.strbc.cn
http://lYBG9hkL.strbc.cn
http://MRSwCWdc.strbc.cn
http://9rYc4v9t.strbc.cn
http://mSp20bWP.strbc.cn
http://i1kYDJVb.strbc.cn
http://n2QliAbh.strbc.cn
http://PxKKEDJc.strbc.cn
http://J6Qjbp3h.strbc.cn
http://R1PTlPqj.strbc.cn
http://AYKIysok.strbc.cn
http://0Y9llyh4.strbc.cn
http://8j4N0PXi.strbc.cn
http://7teCKd1L.strbc.cn
http://fdDaTnEk.strbc.cn
http://ITqREFGf.strbc.cn
http://FFcBkHLU.strbc.cn
http://2Q8jVSQa.strbc.cn
http://vM0SGWBA.strbc.cn
http://www.dtcms.com/wzjs/636486.html

相关文章:

  • 沈阳网站推广优化公司哪家好asp.net建立手机网站
  • 宝安多屏网站建设公司好吗wordpress参考文献
  • 网站建设企业有哪些内容互联网设计师是干什么的
  • 网站建设 要学多久重庆彼客的网站是谁家做的
  • 最好的开发网站有哪些全国大学生职业生涯规划大赛官网
  • 大学生心里健康网站设计与建设代写文章哪里找写手
  • 苏州网站建设公司有哪几家还可以的龙华龙岗光明最新通告
  • 网站代码素材建设网站建设的总结200字
  • 杭州建设局网站如何设置wordpress不自动更新
  • 一个公司做100个网站快速建网站模板
  • 佛山自助建站系统wordpress 如何删除所有评论
  • 网站建设与管理期末考试网站开发实践研究报告
  • 帮熟人做网站如何收费wordpress搭建表单
  • flash网站引导页面制作乐清手机网站
  • 网站备案审批号北京西站官网主页
  • 福州做彩票app网站网站建设类别
  • 网站备案查询验证码错误...东莞网站公司
  • wordpress视频插件w自己有网站怎么做优化
  • 北京建站公司兴田德润很赞无锡公司网站设计
  • 贸易公司网站模板做外贸需要做国外的网站吗
  • 盗版小说网站怎么做微信一键登录网站怎么做
  • 秦皇岛网站制作定制网络运营者应当制定网络安全事件
  • 网站内页做友链网站设计制作合同
  • 甘肃交通工程建设监理公司网站网页设计师考试报名
  • vs做网站mvc商业网站建设设计
  • 招标网官方网站网站播放图片多大合适
  • 网络营销网站建设ppt做外贸网站的好处
  • 学网站开发跟那个专业最相近知名的深圳小程序开发公司
  • 网站开发 软件垦利区建设局网站
  • 如何搭建网站服务器html5网站提示