代码随想录算法训练营第四十六天

编程入门 行业动态 更新时间:2024-10-25 14:26:36

代码随想录<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法训练营第四十六天"/>

代码随想录算法训练营第四十六天

第九章 动态规划part08

139. 单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。

注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

关于字符串类型的题目还是很不熟悉,重新回顾了之前写过的131. 分割回文串使用回溯法解决。

已经忘记了字典需要先转化为unordered_set<string>,从而可以直接在其中find单词

使用回溯法解决本题部分案例无法通过,使用动态规划:

注意递推公式推导。

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(),wordDict.end());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);if(wordSet.find(word)!=wordSet.end()&&dp[j]){dp[i]=true;}}}return dp[s.size()];}
};

二刷字符串问题要重点掌握。

多重背包

多一个for循环遍历物品个数

背包总结

代码随想录

更多推荐

代码随想录算法训练营第四十六天

本文发布于:2023-11-15 15:11:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1601759.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   训练营   六天   代码   随想录

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!