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

山东高端网站建设温州有没有做鞋的网站

山东高端网站建设,温州有没有做鞋的网站,贵州三线建设博物馆网站,wordpress 手机号注册文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串&a…

文章目录

  • 1.题目
    • 示例
    • 提示
  • 2.解答思路
  • 3.实现代码
    • 结果
  • 4.总结

1.题目

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

异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。

示例

示例 1:
输入: s = “cbaebabacd”, p = “abc”
输出: [0,6]
解释:
起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。
起始索引等于 6 的子串是 “bac”, 它是 “abc” 的异位词。

示例 2:
输入: s = “abab”, p = “ab”
输出: [0,1,2]
解释:
起始索引等于 0 的子串是 “ab”, 它是 “ab” 的异位词。
起始索引等于 1 的子串是 “ba”, 它是 “ab” 的异位词。
起始索引等于 2 的子串是 “ab”, 它是 “ab” 的异位词。

提示

  • 1 <= s.length, p.length <= 3 * 104
  • s 和 p 仅包含小写字母

2.解答思路

对于滑动窗口的题,关键就是定义两个left,right用来控制子串的头尾。
还需要明确增大窗口的条件,以及缩小窗口的条件。

定义一个vector对象,用来存储答案(答案就是每一次的left值)。
定义两个无序哈希表分别存储s和p中字符出现的次数。
其中pCount的次数是不变的,用来比较的标准。
其中sCount的次数是随着逐渐的遍历用来控制增大缩小窗口的关键判断条件。
当sCount中字符对应次数大于pCount中次数时,就需要缩小窗口。

3.实现代码

class Solution
{
public:vector<int> findAnagrams(string s, string p){vector<int> answer ;unordered_map<char, int> pCount, sCount; // 无序哈希表int pLen = p.size();int sLen = s.size();for (char c : p){ // p每个字符出现的次数pCount[c]++;}for (int left = 0, right = 0; right < sLen; right++){char c = s[right]; // 记录对头指针所指字符// 增大窗口sCount[c] += 1; // 无论是什么字符,直接插入子串// 缩小窗口while (sCount[c] > pCount[c]){/*缩小窗口条件:1.当下字符不在p中。2.当下字符出现重复(p中没有重复字符)3.若p中有重复字符,这个比较也可以直接计算重复次数*/sCount[s[left]]--; // 相对应字符次数减1left++;            // 缩小窗口}// 缩小窗口之后,子串[left,right]两侧都是闭区间if (right - left + 1 == pLen){ // 当子串长度=p长度,就可记录下此时的left值answer.push_back(left);}}return answer;}
};

结果

在这里插入图片描述

4.总结

这道题不简单,写了好久。最开始没有考虑到p中有重复字符的情况,导致饶了很大圈子。
最后还是参考别人的代码思路仿写的。学习了很好的思路。有收获!

当两个序列的元素都需要计数的时候,可以使用两个哈希表,并且int型的值,都会初始化为0.,直接使用++运算也是ok的。

自信,坚持,upup~

http://www.yayakq.cn/news/179726/

相关文章:

  • 新思维网站合肥网站优化技术
  • 深圳网站建设服务平台亳州建设网站
  • 制作网站的最新软件昆明网站制作的方法
  • 为什么做的网站要续费家居装修企业网站源码
  • 学院网站建设报价哪些做园林的网站
  • 优舟网站建设wordpress社交帐号登录
  • 青白江建设局网站两学一做网站是多少钱
  • 建设职业技术学院网站seo营销优化
  • 网站开发 百度编辑器传统旅行社如何建设网站
  • 不是做有网站都叫jwth网络推广服务开票
  • 太原网站制作多少钱学做网站php吗
  • 企业网站优化分为两个方向重庆装修论坛
  • 做网站翻页怎么做wordpress评论折叠
  • 建设网站具体步骤整站优化
  • 在线网站编辑导航页面wordpress代码
  • 商会网站设计怎么给自己的网站做seo
  • 关于申请网站建设网络营销推广方案前言
  • 免费下载教学设计的网站河南省新闻头条最新消息
  • 一个网站需要几个人做苏州网站开发公司
  • 技术支持 东莞网站建设手机网站输入框
  • 企模网站南通制作网站的有哪些公司吗
  • 江阴规划建设局网站公司做网站一般
  • 一键建站哪家信誉好自考网页制作与网站建设
  • 网站的ftp上传地址正规大宗商品交易平台
  • 专业网站策划国内最好景观设计公司排名
  • 企业网站建设公司电话新加坡网站制作
  • 58同城怎么做网站怎样用模板建网站
  • 网站建设多少钱明细广州市建设工程安监站网站
  • 做网站带阿里云服务器多少钱国内国际时事图片
  • pc网站开发使用什么布局好有人看片吗免费观看