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 };
  • 相关阅读:
    ROC曲线
    数学建模的时间表和分工
    找寻子串
    被7整除
    Java中BufferedReader和scanner的对比
    机器学习降维方法
    梯度下降法
    天池大赛
    统一认证系统(三)
    软件设计方案
  • 原文地址:https://www.cnblogs.com/easonliu/p/3659078.html
Copyright © 2011-2022 走看看