zoukankan      html  css  js  c++  java
  • 单词拆分

    题目链接:https://leetcode-cn.com/problems/word-break
    题目描述:
    给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。

    说明:
    拆分时可以重复使用字典中的单词。
    你可以假设字典中没有重复的单词。

    示例 1:
    输入: s = "leetcode", wordDict = ["leet", "code"]
    输出: true
    解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。

    示例 2:
    输入: s = "applepenapple", wordDict = ["apple", "pen"]
    输出: true
    解释: 返回 true 因为 "applepenapple" 可以被拆分成 "apple pen apple"。
      注意你可以重复使用字典中的单词。

    示例 3:
    输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
    输出: false

    题解:

    
    class Solution {
    public:
        bool wordBreak(string s, vector<string>& wordDict) {
            unordered_set wordSet(wordDict.begin(), wordDict.end());
            //dp[i]: 字符串长度为i时,是否可以被拆分为单词
            vector<bool> dp(s.size() + 1, false);
            dp[0] = true;
            for(int i = 1; i <= s.size(); i++)
            {
                for(int j = 0; j < i; j++)
                {
                    string word = s.substr(j, i - j);     //从j下标开始截取长度i-j的字符串
                    if(wordSet.find(word) != wordSet.end() && dp[j] == true)
                        dp[i] = true;
                }
            }
            return dp[s.size()];
    
        }
    };
    
    
  • 相关阅读:
    Hadoop之hive 其他
    mac 安装mysql
    Mac OS X【快捷键组合】汇总
    一月一城市,一年一大洲
    自信的男生最有魅力
    Python之路
    Hadoop之伪分布环境搭建
    smb
    Maven 安装以及一些开发技巧
    Hadoop之 hdfs 系统
  • 原文地址:https://www.cnblogs.com/ZigHello/p/15172226.html
Copyright © 2011-2022 走看看