zoukankan      html  css  js  c++  java
  • [Leetcode] Substring with Concatenation of All Words

    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].

    老是超时,终于过了。

     1 class Solution {
     2 public:
     3     vector<int> findSubstring(string S, vector<string> &L) {
     4         vector<int> res;
     5         if (L.size() < 1) return res;
     6         
     7         int Len = L.size() * L[0].length();
     8         int len = L[0].length();
     9         if (S.length() < Len) return res;
    10         
    11         map<string, int> word_count;
    12         for (int i = 0; i < L.size(); ++i) {
    13             word_count[L[i]]++;
    14         }
    15         map<string, int> word_detect;
    16         for (int i = 0; i <= S.length() - Len; ++i) {
    17             word_detect.clear();
    18             string substr;
    19             int j = 0;
    20             for (j = 0; j < Len; j += len) {
    21                 substr = S.substr(i + j, len);
    22                 if (word_count.find(substr) == word_count.end())
    23                     break;
    24                 ++word_detect[substr];
    25                 if (word_detect[substr] > word_count[substr])
    26                     break;
    27             }
    28             if (j==Len) res.push_back(i);
    29         }
    30         return res;
    31     }
    32 };
  • 相关阅读:
    cs224n word2vec
    背包问题
    动态规划二
    动态规划
    递推求解
    Tmux 使用技巧
    LeetCode 75. Sort Colors
    LeetCode 18. 4Sum new
    LeetCode 148. Sort List
    LeetCode 147. Insertion Sort List
  • 原文地址:https://www.cnblogs.com/easonliu/p/3659078.html
Copyright © 2011-2022 走看看