网站开发需要团队吗,深圳高端医疗器械公司,网络规划设计师和系统架构师哪个好考,直播网站开发公司目录
1. 题目解析
2. 算法原理
3. 代码编写
写在最后#xff1a; 1. 题目解析
题目链接#xff1a;30. 串联所有单词的子串 - 力扣#xff08;LeetCode#xff09; 这道题其实也很好理解#xff0c;看一下示例就基本知道是什么意思了#xff0c;
主要就是找 s 里面…目录
1. 题目解析
2. 算法原理
3. 代码编写
写在最后 1. 题目解析
题目链接30. 串联所有单词的子串 - 力扣LeetCode 这道题其实也很好理解看一下示例就基本知道是什么意思了
主要就是找 s 里面有没有我们能拼接的子串然后返回索引即可。
2. 算法原理
我们可以把它给的子串数组中的子串看成一个个字符
把目标子串 s 中的每一个等长子串也看成一个个字符
我们就会发现这道题就转化成了之前我们做的那道字母异位词的题目
我们再使用同样的思路作答即可
3. 代码编写
class Solution {
public:vectorint findSubstring(string s, vectorstring words) {vectorint ret;unordered_mapstring, int win;for(auto e : words) win[e];int len words[0].size(), m words.size();for(int i 0; i len; i) {unordered_mapstring, int hash;for(int left i, right i, count 0; right len s.size(); right len) {string in s.substr(right, len);hash[in];if(hash[in] win[in]) count;if(right - left 1 len * m) {string out s.substr(left, len);if(hash[out] win[out]) count--;hash[out]--;left len;}if(count m) ret.push_back(left);}}return ret;}
};
写在最后
以上就是本篇文章的内容了感谢你的阅读。
如果感到有所收获的话可以给博主点一个赞哦。
如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~