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 }
Problem Word Break
时间: 2024-10-24 18:54:13