substring-with-concatenation-of-all-words
来源:互联网 发布:金蝶软件财务报表 编辑:程序博客网 时间:2024/06/05 12:07
题目:
You are given a string, S, and a list of words, L, that are all of the same length. Find all starting indices of substring(s) in S that is a concatenation of each word in L exactly once and without any intervening characters.
For example, given:
S:”barfoothefoobarman”
L:[“foo”, “bar”]
You should return the indices:[0,9].
(order does not matter).
程序:
class Solution {public: vector<int> findSubstring(string S, vector<string> &L) { map<string, int> dict; vector<int> res; if (!S.size() || !L.size()) return res; for (int i = 0; i < L.size(); i++) dict[L[i]] ++; int m = L.size(); int n = L[0].size(); int size = m*n; for (int i = 0; i < S.size() - size + 1; i++) { for (int a = 0; a < m; a++)//字典归0 { dict[L[a]] = 0; } for (int a = 0; a < m; a++)//与上步一起初识化字典 { dict[L[a]] ++; } string s = S.substr(i, size); int j = 0; while (j < m) { string ss = s.substr(j*n, n); if (dict.find(ss) != dict.end()) dict[ss]--; else break; j++; } if (j != m) continue; int k = 0; for (; k < m; k++) { if (dict[L[k]]) break; } if (k == m) res.push_back(i); } return res; }};
点评:
通过哈希表减少时间复杂度
阅读全文
0 0
- LeetCode: Substring with Concatenation of All Words
- LeetCode : Substring with Concatenation of All Words
- LeetCode29: Substring with Concatenation of All Words
- [Leetcode] Substring with Concatenation of All Words
- Substring with Concatenation of All Words
- Substring with Concatenation of All Words
- [LeetCode]Substring with Concatenation of All Words
- Substring with Concatenation of All Words
- LeetCode-Substring with Concatenation of All Words
- [LeetCode] Substring with Concatenation of All Words
- 26 - 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 Substring with Concatenation of All Words
- Ajax实现异步
- 第二周项目一C/C++语言中函数传递的三种方式之方法二传地址
- spring的@Transactional注解详细用法
- GFOJ686 序列操作(分段DP,未高精)
- 归并排序
- substring-with-concatenation-of-all-words
- 观察者模式
- HDU5810-Balls and Boxes
- php获取目录下所有文件及目录(多种方法)
- Mybatis有关于参数的传递
- 爬虫小记(一)
- 文件,目录相关操作
- HDU 1166 敌兵布阵(基础线段树~)
- css中display的inline、block、inline-block