Problem Word Break II

Problem Description:

Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word.

Return all such possible sentences.

For example, given
s = "catsanddog",
dict = ["cat", "cats", "and", "sand", "dog"].

A solution is ["cats and dog", "cat sand dog"].

 Solution:

 1 public List<String> wordBreak(String s, Set<String> dict) {
 2         Set<Character> set = new HashSet<Character>();
 3         for (int i = 0; i < s.length(); i++) {
 4             set.add(s.charAt(i));
 5         }
 6         for (char a : set) {
 7             boolean found = false;
 8             for (String word : dict) {
 9                 if (word.indexOf((int)a) >= 0) {
10                     found = true;
11                 }
12             }
13
14             if (! found) {
15                 return new ArrayList<String>();
16             }
17         }
18
19
20         List<String> list = new ArrayList<String>();
21         if (s == null || dict == null || dict.size() == 0) {
22             return new ArrayList<String>();
23         }
24         if (s.equals("")) {
25             list.add("");
26             return list;
27         }
28         boolean match = false;
29         for (String word : dict) {
30             if (word.length() <= s.length()) {
31                 if (s.substring(0, word.length()).equals(word)) {
32                     match = true;
33                     List<String> others = wordBreak(s.substring(word.length()), dict);
34                         for (String other : others) {
35                             if (! other.equals("")) {
36                               list.add(word.concat(" ").concat(other));
37                             } else {
38                                 list.add(word);
39                             }
40                         }
41                 }
42             }
43         }
44
45
46         return match ? list : new ArrayList<String>();
47     }

Problem Word Break II

时间: 2024-08-01 10:32:41

Problem Word Break II的相关文章

[leecode]Word Break II

Word Break II Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For example, givens = "catsanddog",dict = ["cat", &q

Word Break &amp;&amp; Word Break II

Word Break && Word Break II Word Break 题目: Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s = "leetcode", dict = ["

Leetcode dfs Word Break II

Word Break II Total Accepted: 15138 Total Submissions: 92228My Submissions Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For ex

【leetcode】Word Break II

Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For example, givens = "catsanddog",dict = ["cat", "cats"

Word Break II leetcode java

题目: Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For example, given s = "catsanddog", dict = ["cat", "cats

LeetCode: Word Break II [140]

[题目] Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For example, given s = "catsanddog", dict = ["cat", "cat

[leetcode]Word Break II @ Python

原题地址:https://oj.leetcode.com/problems/word-break-ii/ 题意: Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For example, givens = "c

Word Break II 求把字符串拆分为字典里的单词的所有方案 @LeetCode

这道题类似  Word Break 判断是否能把字符串拆分为字典里的单词 @LeetCode 只不过要求计算的并不仅仅是是否能拆分,而是要求出所有的拆分方案.因此用递归. 但是直接递归做会超时,原因是LeetCode里有几个很长但是无法拆分的情况,所以就先跑一遍Word Break,先判断能否拆分,然后再进行拆分. 递归思路就是,逐一尝试字典里的每一个单词,看看哪一个单词和S的开头部分匹配,如果匹配则递归处理S的除了开头部分,直到S为空,说明可以匹配. public class Solution

【Word Break II】cpp

题目: Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For example, givens = "catsanddog",dict = ["cat", "cats&q