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

广州网站推广服务商市场营销公司

广州网站推广服务商,市场营销公司,注册公司最少需要多少注册资金,山东恒正建设有限公司 网站这道题目只写出来一半,我想着思路和之前那个无重复字符的最长子串有点像,然后就依葫芦画瓢写了一部分,但是还是没有想到额外定义一个左右指针来维护最短子串的左右端点的下标,这里把这个思路具体说下。 首先我们依然需要定义两个哈…


这道题目只写出来一半,我想着思路和之前那个无重复字符的最长子串有点像,然后就依葫芦画瓢写了一部分,但是还是没有想到额外定义一个左右指针来维护最短子串的左右端点的下标,这里把这个思路具体说下。
首先我们依然需要定义两个哈希表hash_Thash_S,其中hash_T用于统计字符串t中各个字符的分布情况,而hash_S用于统计滑动窗口内的字符分布情况。首先,不管字符串s能否涵盖字符串t,我们都默认s能涵盖t,因此我们定义result_leftresult_right分别代表最终的最短子串的起点下标和终点下标,在初始状态下,令result_left = -1result_right = s.size(),然后我们再定义左右指针leftright,两个指针在初始状态下都指向s的第一个字符,然后使用for循环用右指针遍历s中的字符,然后我们先将右指针指向的字符计入hash_S,然后判断hash_S是否涵盖了hash_T(hash_T中的每一种字符hash_S中都要有,而且hash_T中每一种字符的个数不大于hash_S中对应的字符个数),如果涵盖了,就说明当前滑动窗口已经找到了符合要求的子串,如果该子串的长度(right - left)小于上一个符合要求的子串的长度(result_right - result_left)直接将left赋值给result_left,将right赋值给result_right,这就实现了结果的更新。注意,在更新结果后需要及时将left指向的字符的数量-1,并将left右移。只要hash_S涵盖了hash_T,就一直循环记录结果,当不再涵盖时,再进行下一次for循环。当外层的for循环结束后,我们需要判断s是否真的满足涵盖条件,如果自始至终都不满足,那么result_left将一直指向-1,此时直接返回空字符串即可,否则就返回s字符串中[result_left, result_right]区间范围内的子串。

class Solution {
public://判断bool is_covered(unordered_map<char, int>& hash_T, unordered_map<char, int>& hash_S){for(pair<const char, int>& p : hash_T){if(!hash_S.contains(p.first) || hash_S[p.first] < hash_T[p.first])return false;}return true;}string minWindow(string s, string t) {int result_left = -1, result_right = s.size();unordered_map<char, int> hash_T;    //用来存储字符串t的字符分布情况unordered_map<char, int> hash_S;    //用来存储子串内的字符分布情况for(char& c : t)hash_T[c]++;for(int left = 0, right = 0; right < s.size(); right++){hash_S[s[right]]++;while(is_covered(hash_T, hash_S)){  //当t涵盖s时执行循环if(right - left < result_right - result_left){  //寻找到更短的子串result_left = left;result_right = right;}hash_S[s[left]]--;left++;}}return result_left < 0 ? "" : s.substr(result_left, result_right - result_left + 1);}
};

文章转载自:

http://PP4YlEXL.hbkkc.cn
http://OiTH8gsC.hbkkc.cn
http://AgO7FYJr.hbkkc.cn
http://qMsXi3Ls.hbkkc.cn
http://kQ8MIFiz.hbkkc.cn
http://lOmwNITH.hbkkc.cn
http://cKLWaEZl.hbkkc.cn
http://dhHDcZab.hbkkc.cn
http://M90iuCSh.hbkkc.cn
http://f0tlSWjC.hbkkc.cn
http://L8u2Bc0a.hbkkc.cn
http://nXGxlGq0.hbkkc.cn
http://D0IMmVcD.hbkkc.cn
http://d05zqJrF.hbkkc.cn
http://PLXa6E7R.hbkkc.cn
http://BLgvyfW4.hbkkc.cn
http://e2c5uVqZ.hbkkc.cn
http://MKLcUDpt.hbkkc.cn
http://nmx1gwhq.hbkkc.cn
http://rlfsD60a.hbkkc.cn
http://QN9tlewZ.hbkkc.cn
http://4iMhupmq.hbkkc.cn
http://0O3YuyIM.hbkkc.cn
http://kAXfks2k.hbkkc.cn
http://1QX7ltVF.hbkkc.cn
http://I7Mp1HHH.hbkkc.cn
http://XprrPRF0.hbkkc.cn
http://kxF2wDgu.hbkkc.cn
http://n3R5VA41.hbkkc.cn
http://TN2EydDU.hbkkc.cn
http://www.dtcms.com/wzjs/670125.html

相关文章:

  • 邢台专业做网站网络推广营销策划
  • 网站做的长图能导出吗网站建设公司 信科网络
  • 怎么用自己主机做网站_青岛网站设计模板
  • 网站网页建设与维护35岁学网站开发怎么样
  • 坪山做网站Zillah wordpress
  • 口腔医院网站优化服务商未来 网站开发 知乎
  • 俄罗斯网站建设公司嘉兴网站建设嘉兴
  • 企业网站备案容易吗股份有限公司
  • 常州微信网站建设效果合肥企业网站制作公司
  • 临海门户网站住房和城乡建设规划局用来做收录的网站
  • 寿光做网站m0536产品推广网站模板
  • 网站建设wesnowsatwordpress评论img标签
  • 西安网站制作中心家庭优化大师免费下载
  • 城乡建设部注册建筑师网站建站快车代理平台系统
  • 网站建设大概价格平台网站制作
  • 周浦做网站公司舟山网站建设设计
  • 摄影网站设计代码烟台网站开发制作
  • 做网站主机电脑域名申请注册的步骤
  • app开发和网站开发哪个好沙元浦做网站的公司
  • 对网站建设的建议wordpress2018
  • 哈尔滨 做网站广州网站设计制作公司
  • 前后端分离企业网站源码企业被网站骗做会员
  • 如何建设国外的网站天津滨海新区天气预报
  • 网站用途说明无锡做网站、
  • 汕头网站优化系统wordpress服务器如何使用
  • 模板网站建设信息四川智能网站建设制作
  • 手机建网站挣钱吗中国建设网官方网站app
  • 手机网站返回按钮怎么做平阴网站建设
  • 自由型网站网站怎么做白色字
  • 长沙智能建站模板自己建立网站