LeetCode 139.单词拆分
本文最后更新于599 天前,其中的信息可能已经过时,如有错误请发送邮件到tomding1065@gmail.com

视频讲解:https://www.bilibili.com/video/BV1pd4y147Rh

https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html

1.本题对于dp数组的含义的确定非常重要,dp[i]表示前i个字符在给定数组内是否能找得到,s = "applepenapple", wordDict = ["apple", "pen"]像是这样的数据,我们需要[0,1,0]的方法而不是[0,0,1]的方法虽然都能组成对应的结果但是要有序,所以是排列的形式,还是先遍历背包后遍历物品,而且我觉得在题中应该一直记得自己的dp数组的含义,像是本题,我只一直疑惑的是第一层循环为什么可以是i <= s.size()我觉得会下标越界,但是本题的dp数组的含义是前i个字符是否符合要求,所以不是遍历s这个数组。

CPP

class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {
        vector<bool> dp(s.size() + 1, false);
        dp[0] = true;
        unordered_set<string> wordSet(wordDict.begin(), wordDict.end());
        for(int i = 1; i <= s.size(); i++){
            for(int j = 0; j < i; j++){
                string str = s.substr(j, i - j);
                if(wordSet.find(str) != wordSet.end() && dp[j] == true){
                    dp[i] = true;
                }
            }
        }
        return dp[s.size()];
    }
};
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
Cream_dpl