leetcode 30. Substring with Concatenation of All Words
来源:互联网 发布:plc与单片机的区别 编辑:程序博客网 时间:2024/06/04 17:40
You are given a string, s, and a list of words, words, that are all of the same length. Find all starting indices of substring(s) in s that is a concatenation of each word in words exactly once and without any intervening characters.
For example, given:
s: "barfoothefoobarman"
words: ["foo", "bar"]
You should return the indices: [0,9]
.
(order does not matter).
class Solution {public:vector<int> findSubstring(string s, vector<string>& words) {vector<int>re;if (words.empty())return re;int wl = words[0].length();map<string, int>count;for (int i = 0; i < words.size(); i++)count[words[i]]++;int k = 0;while (true){map<string, int>cnt = count;while (k < s.length() - wl*words.size() + 1 && cnt.find(string(s.begin() + k, s.begin() + k + wl)) == cnt.end())k++;if (k == s.length() - wl*words.size() + 1)return re;int kk = k;while ( !cnt.empty() && cnt.find(string(s.begin() + kk,s.begin() + kk + wl)) != cnt.end()){cnt[string(s.begin() + kk, s.begin() + kk + wl)]--; if (cnt[string(s.begin() + kk, s.begin() + kk + wl)] == 0)cnt.erase(cnt.find(string(s.begin() + kk, s.begin() + kk + wl)));kk += wl;}if (cnt.empty())re.push_back(k);k++;}return re;}};
accepted
0 0
- LeetCode: Substring with Concatenation of All Words
- LeetCode : Substring with Concatenation of All Words
- [Leetcode] Substring with Concatenation of All Words
- [LeetCode]Substring with Concatenation of All Words
- LeetCode-Substring with Concatenation of All Words
- [LeetCode] Substring with Concatenation of All Words
- LeetCode:Substring with Concatenation of All Words
- Leetcode: Substring with Concatenation of All Words
- [LeetCode] Substring with Concatenation of All Words
- leetcode Substring with Concatenation of All Words
- leetcode Substring with Concatenation of All Words
- LeetCode Substring with Concatenation of All Words
- LeetCode | Substring with Concatenation of All Words
- LeetCode - Substring with Concatenation of All Words
- Substring with Concatenation of All Words -- LeetCode
- Leetcode: Substring with Concatenation of All Words
- leetcode:Substring with Concatenation of All Words
- LeetCode|Substring with Concatenation of All Words
- redis常见操作
- 剑指offer 青蛙跳台阶
- C++卷积神经网络实例:tiny_cnn代码详解(11)——层结构容器layers类源码分析
- 关于Java垃圾回收机制,你所需要知道的一切
- 概率期望相关
- leetcode 30. Substring with Concatenation of All Words
- 在C语言中解析JSON配置文件
- bzoj1005(prufer+组合+高精度)
- 大数取余
- Memcached
- Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递?
- mac使用技巧
- spring MVC原理
- Volley框架的下载及源码报错解决