首页 > 代码库 > Problem Word Break

Problem Word Break

Problem Description:

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 = ["leet", "code"].

Return true because "leetcode" can be segmented as "leet code".

 

 Solution:
 1 public boolean 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 false;16             }17         }18 19         if (s == null || dict.size() == 0 || dict == null) {20             return false;21         }22         if (s.equals("")) return true;23 24         for (String word : dict) {25             if (word.length() <= s.length()) {26                 if (s.substring(0, word.length()).equals(word)) {27                     boolean result = wordBreak(s.substring(word.length()), dict);28                     if (result) return true;29                 }30             }31         }32 33         return false;34     }