zoukankan      html  css  js  c++  java
  • LeetCode OJ--Word Break II ***@

    https://oj.leetcode.com/problems/word-break-ii/

    class Solution {
    public:
        unordered_set<string> dict;
        string s;
        unordered_map<string, vector<string> > memory;  //用来记录一个string可以的组成
    
        vector<string> wordBreak(string s, unordered_set<string> &dict) {
            memory.clear();
            this->dict = dict;
            this->s = s;
            
            return subWordBreak(s);
        }
        vector<string> subWordBreak(string &s)
        {
            //先看是否之前处理过这个 子串
            if(memory.find(s) != memory.end())
                return memory[s];
    
            // 新建一个 memory中的项,即返回值
            vector<string> result;
            
            if(s.size() <= 0)
                return result;
            
            // 广度,然后递归
            // 个数
            for(int i = 1; i <= s.size(); i++)
            {
                // 找出所有合理的小片段,再递归剩下的片段
    
                // if is a valid, belongs to dict
                string subS = s.substr(0,i); 
    
                if(dict.find(subS) != dict.end())
                {
                    if(i == s.size())
                        result.push_back(subS);    
                    else
                    {
                        // 递归调用 剩下的部分
                        string leftstr = s.substr(i,s.size() - i);
                        vector<string> tmp = subWordBreak(leftstr);
                        for(int j = 0; j < tmp.size(); j++)
                        {
                            string item = subS;
                            item.append(" ");
                            item.append(tmp[j]);
                            result.push_back(item);
                        }
                    }
                }    
            }
            memory.insert(make_pair(s,result));
            return result;
        }
    };
     
  • 相关阅读:
    delphi 控制音量 静音的类
    delphi java 日期 转换 获取Unix时间戳
    UI颜色值
    ios10 no route to host
    VMWare MAC系统调整磁盘
    手机传文字到电脑
    Delphi JCL JEDI使用 jclDebug
    PS 使用首记 修改png图片的颜色
    delphi Style TBitmapLink
    delphi IOS 获取电池信息
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3887023.html
Copyright © 2011-2022 走看看