zoukankan      html  css  js  c++  java
  • 30. Substring with Concatenation of All Words

    description:

    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.
    Note:

    Example:

    Example 1:
    
    Input:
      s = "barfoothefoobarman",
      words = ["foo","bar"]
    Output: [0,9]
    Explanation: Substrings starting at index 0 and 9 are "barfoor" and "foobar" respectively.
    The output order does not matter, returning [9,0] is fine too.
    Example 2:
    
    Input:
      s = "wordgoodgoodgoodbestword",
      words = ["word","good","best","word"]
    Output: []
    

    answer:

    class Solution {
    public:
        vector<int> findSubstring(string s, vector<string>& words) {
            if (s.empty() || words.empty()) return {};
            vector<int> res;
            int n = words.size(), len = words[0].size();
            unordered_map<string, int> wordCnt;
            for (auto &word : words) ++wordCnt[word];
            //hashtabel统计词和对应的词频,上边这两句背一下,很有意思
            for (int i = 0; i <= (int)s.size() - n * len; ++i) {
            //这里大佬说一定要先把长度转成整数形式
                unordered_map<string, int> strCnt;
                int j = 0;
                for (j = 0; j < n ;j++){
                    string t = s.substr(i + j * len, len);
                    //活用c++的函数丫
                    if (!wordCnt.count(t)) break;
                    ++strCnt[t];
                    if (strCnt[t] > wordCnt[t]) break;
                }
                if (j == n) res.push_back(i);
            }
            return res;
        }
    };
    

    relative point get√:

    • string.substr

    unordered_map<x,x> res;
    for (auto &ele : eles) ++elecount[ele]

    hint :

    思路很简单,就是固定原字符串,然后拿单词表里的词去比,没有就过,多了就过。属于哈希表的活学活用吧。

  • 相关阅读:
    php 调试
    php 格式
    php 函数 将数组转换成标量变量:extract()
    jQuery 方法
    php echo字符串的连接格式
    wampserver php 设置时间
    TableView使用CATransform3D特效动画
    苹果手机制作gif图片
    全局修改Lable/Button字体
    关于 presentViewController 时机
  • 原文地址:https://www.cnblogs.com/forPrometheus-jun/p/11078054.html
Copyright © 2011-2022 走看看