zoukankan      html  css  js  c++  java
  • leetCoder-wordBreak判断能否分词

    题目

    Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words. You may assume the dictionary does not contain duplicate words.

    For example, given
    s = "leetcode",
    dict = ["leet", "code"].
    Return true because "leetcode" can be segmented as "leet code".
    UPDATE (2017/1/4):
    The wordDict parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes.

    分析

    给出一段话,判断能否分词(被dict里的单词分割)

    简单动态规划题,使用dp[i]表示前i个单词能否被分词,则状态转移方程为

    dp[j] = dp[i] && s[i:j]∈dict
    

    如果前i个单词可以被分词,且i-jdict里,则前j个单词可以被分词

    AC代码

    class Solution {
    public:
        bool wordBreak(string s, vector<string>& wordDict) {
            int n = s.length();
            vector<bool> dp(n + 1, false);
            dp[0] = true;
            for(int i=0;i<n;i++){
                for(int j = i; dp[i]&&j<n; j++){
                    auto f = find(wordDict.begin(), wordDict.end(), s.substr(i,j-i+1));
                    if(f != wordDict.end())//找到
                        dp[j+1] = true;
                }
            }
            return dp[n];
        }
    };
    
    转载请保留原文链接及作者
    本文标题:
    文章作者: LepeCoder
    发布时间:
    原始链接:
  • 相关阅读:
    关于并发量的简单计算公式
    kbmmw中向服务器端传递对象的一种简单方式
    tms web core 里面调用pascal 过程。
    tms web core 通过URL 传递参数
    tms web core 与 kbmmw 第一次亲密接触
    kbmmw 的HTTPSmartService 上传文件到服务器端
    kbmmw 中的进程管理小工具
    kbmmw 5.06.20 发布
    kbmmw ORM 对象定义语法简析
    kbmmw 5.06.00 beta 发布
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/leetCoder-wordBreak.html
Copyright © 2011-2022 走看看