leetcode Word Break 字典树+dp
来源:互联网 发布:c指针的编程题 编辑:程序博客网 时间:2024/06/08 05:03
#include <string.h>struct node{ bool flag; node *next[26]; node() { flag=0; memset(next,0,sizeof(next)); }};int dp[1000000];class Solution { public: node *root; Solution() { root=new node; } void insert(string s) { for(int i=0;i<s.size()/2;i++)// 反向的字典树 swap(s[i],s[s.size()-1-i]); node *p=root; for(int i=0;i<s.size();i++) { if(p->next[s[i]-'a']==NULL) { p->next[s[i]-'a']=new node; } p=p->next[s[i]-'a']; } p->flag=true; } bool wordBreak(string s, unordered_set<string> &dict) { memset(dp,0,sizeof(dp)); unordered_set<string>::iterator it=dict.begin(); while(it!=dict.end()) { insert(*it); it++; } dp[0]=1; for(int i=1;i<=s.size();i++) { node *p=root; for(int j=i;j>0;j--) { p=p->next[s[j-1]-'a']; if(!p) break; if(dp[j-1]&&p->flag) { dp[i]=true; break; } } } return dp[s.size()]; }};
0 0
- leetcode Word Break 字典树+dp
- [LeetCode]Word Break 字典树
- leetcode 139. Word Break(dp,字典匹配)
- LeetCode Word Break (dp)
- Leetcode dp Word Break
- 【Leetcode】Word Break (DP)
- [leetcode][DP] Word Break
- [LeetCode.DP]Word Break ||
- LeetCode Word Break DP
- leetcode---word-break---dp
- LeetCode:Word Break(DP)
- LeetCode:Word Break II(DP)
- [C++]LeetCode: 112 Word Break(DP)
- LeetCode 140. Word Break II (DP+DFS)
- [leetcode][DP][回溯] Word Break II
- [leetcode][DP][回溯] Word Break II
- LeetCode Word Break II DP+DFS
- Leetcode 139 - Word Break(线性dp)
- 基础正觃表示法字符汇整 (characters)
- 更改Eclipse里的Classpath Variables M2_REPO
- timestamp and av sync
- iOS中JSON数据解析
- 蓝桥杯之错误票据
- leetcode Word Break 字典树+dp
- Hive.GROUPING SETS的“陷阱”
- DELPHI 递归遍历文件代码
- hdu 1056 HangOver(暴力||打表二分)
- 面向对象——封装
- 不能将值 NULL 插入列 'id',表 'weibo.dbo.myfriend';列不允许有空值。INSERT 失败。
- 【c++】MFC运行过程函数解析
- NetHogs——Linux下按进程实时统计网络带宽利用率
- MySQL远程登陆操作