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

临沂公司做网站哈尔滨关键词优化价格

临沂公司做网站,哈尔滨关键词优化价格,做推广可以上那些网站,网站建设?首选百川互动30. 串联所有单词的子串 30. 串联所有单词的子串 题目描述: 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words ["…

30. 串联所有单词的子串 

30. 串联所有单词的子串

题目描述:

给定一个字符串 s 和一个字符串数组 words words 中所有字符串 长度相同

 s 中的 串联子串 是指一个包含  words 中所有字符串以任意顺序排列连接起来的子串。

  • 例如,如果 words = ["ab","cd","ef"], 那么 "abcdef", "abefcd""cdabef", "cdefab""efabcd", 和 "efcdab" 都是串联子串。 "acdbef" 不是串联子串,因为他不是任何 words 排列的连接。

返回所有串联子串在 s 中的开始索引。你可以以 任意顺序 返回答案。

解题思路:

首先题目表示word的单词每个长度都一样,我们设为len

我们通过暴力解法来分析一下,当我们每次移动下标都下标可以+len

当然我们可能会从第一个字符开始判断也可以从第二个字符开始判断,因此第一个示例就有以下几种情况:

 也就是有len种情况

我们可以利用滑动窗口+哈希表来解决这个问题

我们还需要使用一个代表有效个数的变量count

1.进窗口——hash2【in】++,当hash2<=hash1, count++(in为要进窗口的下标的字符串)

2. 判断——当m*len>right-left+1(m为s.size())

3.更新结果——ret.push一下

4.出窗口——当hash2<=hash1,count--,hash2【out】--,left+=len(out为要出窗口的下标的字符串)

这里我写了hash1.count(in)和hash1.count(out)是为了提升速度

解题代码:

class Solution {
public:vector<int> findSubstring(string s, vector<string>& words) {vector<int>ret;unordered_map<string,int> hash1;for(auto& i:words) hash1[i]++;int len=words[0].size();int m=words.size();for(int i=0;i<len;i++){unordered_map<string,int> hash2;int count=0;for(int left=i,right=i;right<s.size();right+=len){string in=s.substr(right,len);hash2[in]++;if(hash1.count(in)&&hash2[in]<=hash1[in])count++;if(m*len<right-left+1){string out=s.substr(left,len);if(hash1.count(out)&&hash2[out]<=hash1[out])count--;hash2[out]--;left+=len;}if(m==count)ret.push_back(left);}}return ret;}
};

 76. 最小覆盖子串

76. 最小覆盖子串

题目描述: 

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。

注意:

  • 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
  • 如果 s 中存在这样的子串,我们保证它是唯一的答案。

 解题思路:

本题还是滑动窗口+哈希

利用count和kind来解决这个问题(count为有效字符的个数,kind为种类个数)

1.进窗口——hash2[in]++,当in这个字符的个数达到要求,count++

2.判断——count==kind

3.更新结果——当length > right - left + 1,记录一下length和begin

4.出窗口

解题代码:

class Solution {
public:string minWindow(string s, string t) {unordered_map<char, int> hash1;int kind = 0;//有效字符的种数for (auto& i : t) if (hash1[i]++ == 0)kind++;int count = 0;//有效字符个数(包括数量)的种类unordered_map<char, int>hash2;int length = INT_MAX;int begin=-1;for (int left = 0, right = 0; right < s.size(); right++){char in = s[right];hash2[in]++;if (hash2[in] == hash1[in])count++;while(count == kind){if (length > right - left + 1){length = right - left + 1;begin=left;}char out = s[left];if (hash2[out]--==hash1[out])count--;out = s[++left];}}if(begin==-1)return "";string str=s.substr(begin,length);return str;}
};

http://www.sczhlp.com/news/111896/

相关文章:

  • 江阴市建设局网站管理通道网站正在建设中下载
  • 做网站如何可以实现窗口切换功能为什么网页不能打开建设银行网站
  • 十堰网站优化价格做网站的关键词怎么判断好不好
  • 【GitHub每日速递 250918】开发者必藏!336k 星标项目告诉你:前端 / 后端 / AI 岗该怎么学才高效
  • dw做网站怎么加视频动漫做视频在线观看网站
  • 自动化科技产品网站建设下载微信找回微信
  • 合肥电商网站开发北京建网站哪家公司好
  • 上海简约网站建设公司翻墙到国外网站怎么做
  • 天长做网站网页游戏在线
  • 网站开发原创动漫成都户外网站建设
  • 网页网站建设软件aso关键词覆盖优化
  • 自己怎么设置网站常州网站开发公司
  • 制作网站建设的公司舒城县建设局官方网站
  • 电子政务网站建设的步骤一般为网站设计培训成都
  • 图标的网站推广链接制作软件
  • wordpress整站手机端网站开发摊销期
  • 为什么很多中国人去菲律宾做网站wordpress悬浮框
  • 彩票网站怎么做赚钱微信小程序 连接网站
  • 国外的外贸网站建设网站服务器是什么
  • 重庆做网站重庆做网站大商创 多用户商城
  • 深圳h5网站建设下载建设银行官方网站下载
  • 建外贸企业网站wordpress钉钉登录
  • 如何进行网站的seo触屏端网站开发
  • 手机网站模板 php广州高端网站定制开发价格
  • 发布网站建设需求的经验用云主机做网站
  • 保定市住房和城乡建设局网站学网站开发的书
  • 北京通州做网站铜陵商城网站建设
  • 网站建设与管理实训总结电力公司 网站开发报价单
  • python做网站优势谷德设计网官网入口
  • jsp网站怎么做的好看网站开发三步