zoukankan      html  css  js  c++  java
  • [leetcode-648-Replace Words]

    In English, we have a concept called root, which can be followed by some other words to form another longer word - let's call this word successor. For example, the root an, followed by other, which can form another word another.

    Now, given a dictionary consisting of many roots and a sentence. You need to replace all the successor in the sentence with the root forming it. If a successor has many roots can form it, replace it with the root with the shortest length.

    You need to output the sentence after the replacement.

    Example 1:

    Input: dict = ["cat", "bat", "rat"]
    sentence = "the cattle was rattled by the battery"
    Output: "the cat was rat by the bat"
    

    Note:

    1. The input will only have lower-case letters.
    2. 1 <= dict words number <= 1000
    3. 1 <= sentence words number <= 1000
    4. 1 <= root length <= 100
    5. 1 <= sentence words length <= 1000

    思路:

    思路很朴素,就是将句子里每一个单词从到尾求子串,如果这个子串出现在了dict里,那么就把这个单词替换掉。

    string replaceWords(vector<string>& dict, string sentence)
        {
            map<string, string>mpdic;
            for (auto s : dict)mpdic[s] = s;
            vector<string>word;
            stringstream ss(sentence);
            string tmp;
            while (ss >> tmp)word.push_back(tmp);
            for (auto &str : word)
            {
                for (int i = 1; i < str.length();i++)
                {
                    if (mpdic.count(str.substr(0,i)))
                    {
                        str = str.substr(0, i);
                        break;
                    }
                }
            }
            string ret = word[0];
            for (int i = 1; i < word.size();i++)ret += " " + word[i];
            return ret;        
        }
  • 相关阅读:
    向强大的SVG迈进
    手把手教你写个小程序定时器管理库
    蒲公英 · JELLY技术周刊 Vol.11 Lighthouse 测试报告生成
    ES6语法——let和const
    北京天地益星面经
    JS的数据类型你真的懂了吗
    北京MedPeer凉经
    flex布局语法+实例
    面试官问:你有多少种方式实现三栏布局?
    CSS粘性定位
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/7229681.html
Copyright © 2011-2022 走看看