Word Break II
来源:互联网 发布:福建游龙网络 编辑:程序博客网 时间:2024/06/12 09:25
题目:
链接
解答:
用mark[]记录每次分割位置。
代码:
class Solution {public:int flag = 0;vector<string> result;string last;vector<string> wordBreak(string s, unordered_set<string> &dict) {int a[26];last = s;for (int i = 0; i < 26; i++)a[i] = 0;for (int i = 0; i < s.length(); i++)a[s[i] - 'a'] = 1;for (unordered_set<string>::iterator it = dict.begin(); it != dict.end(); it++){for (int j = 0; j < it->length(); j++){string temp = *it;a[temp[j] - 'a'] = 0;}}int temp = 0;for (int i = 0; i < 26; i++){temp += a[i];}if (temp > 0)return result;int mark[100];search(s, dict, mark, 0);return result;}void search(string s, unordered_set<string> &dict, int mark[], int len){if (s == ""){flag = 1;string ts1 = "";string ts2 = last;for (int i = 0; i < len; i++){ts1 = ts1 + " " + ts2.substr(0, mark[i]);ts2 = ts2.substr(mark[i], ts2.length() - mark[i]);}ts1 = ts1.substr(1, ts2.length() - 1);result.push_back(ts1);}else{for (unordered_set<string>::iterator it = dict.begin(); it != dict.end(); it++){string tempstr = s.substr(0, it->length());if (tempstr == *it){tempstr = s.substr(it->length(), s.length() - it->length());mark[len] = it->length();search(tempstr, dict, mark, len+1);}}}}};
0 0
- Word Break && Word Break II
- Word Break && Word Break II
- [leetcode]Word Break II
- Word Break II
- Word Break II
- LeetCode:Word Break II
- Word Break II
- Leetcode: Word Break II
- [LeetCode] Word Break II
- [LeetCode]Word Break II
- LeetCode | Word Break II
- Word Break II
- Word Break II
- [LeetCode] - Word Break II
- LeetCode - Word Break II
- Leetcode Word Break II
- Word Break II
- Word Break II
- Eclipse设置dtd对struts.xml语法提示
- 王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V1(20140809)之云计算大数据下MySQL企业级开发最佳实践
- HDU-3309-Roll The Cube(BFS)
- 2014.08.09 CH Round#48 - Streaming#3(NOIP模拟赛Day1) 总结
- 读懂diff
- Word Break II
- 8.9JZOJNOIP模拟
- 转载_CI 系统搭建:Git、Gerrit与Jenkins
- jzoj NOIP2014提高组模拟8.9总结
- xml 备份短信 序列化器 XmlSerializer
- 佘祥林案
- 近期总结
- 线段树模板(NOTONLYSUCCESS神牛)
- IntelliJ IDEA 13操作-- 3.项目集成spring、springMVC、hibernate等框架