码迷,mamicode.com
首页 > 其他好文 > 详细

Problem Word Break II

时间:2014-07-07 15:55:48      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   strong   os   

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,布布扣,bubuko.com

Problem Word Break II

标签:des   style   blog   color   strong   os   

原文地址:http://www.cnblogs.com/liew/p/3815033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!