单词拆分

题源:LeetCode

链接:https://leetcode-cn.com/problems/word-break/

 

单词拆分

 

 

这道题目也是用到动态规划,同时考虑使用哈希表的数据结构。

单词拆分

 

 其中check指的是dp[j]后的词是否在哈希表中出现,若出现则dp[i]为true

 1 class Solution {
 2 public:
 3     bool wordBreak(string s, vector<string>& wordDict) {
 4 
 5         auto wordDictSet = unordered_set <string> ();
 6         for (auto word: wordDict) {
 7             wordDictSet.insert(word);
 8         }
 9 
10         auto dp = vector<bool>(s.size()+1);
11         dp[0] = true;
12 
13         for(int i = 1;i<=s.size();i++){
14             for(int j = 0;j<i;j++){
15                 if(dp[j]&&wordDictSet.find(s.substr(j,i-j))!=wordDictSet.end()){
16                     dp[i] = true;
17                     break;
18                 }
19             }
20 
21         }
22         return dp[s.size()];
23 
24     }
25 };

 

上一篇:LeetCode 139. 单词拆分


下一篇:使用C#模拟Outlook发送邮件,代码编译报错