Substring with Concatenation of All Words
Posted wxquare的学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Substring with Concatenation of All Words相关的知识,希望对你有一定的参考价值。
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) { int nums = words.size(), n = s.length(), len = words[0].length(); vector<int> ret; unordered_map<string, int> count; for (string word : words) count[word]++; for (int i = 0; i < n - len * nums + 1; i++) { unordered_map<string, int> seen; int j = 0; for (; j < nums; j++) { string str = s.substr(i + j * len, len); if (count.find(str) != count.end()) { seen[str]++; if (seen[str] > count[str]) break; }else{ break; } } if(j == nums) ret.push_back(i); } return ret; } };
以上是关于Substring with Concatenation of All Words的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 30 Substring with Concatenation of All Words
LeetCode Longest Substring with At Most Two Distinct Characters
Substring with Concatenation of All Words
longest-substring-with-at-least-k-repeating-characters