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"
.
Have you met this question in a real interview?
Solution:
1 public class Solution { 2 public boolean wordBreak(String s, Set<String> dict) { 3 boolean[] break = new boolean[s.length()+1]; 4 break[0] = true; 5 6 for (int i=1;i<=s.length();i++){ 7 StringBuilder builder = new StringBuilder; 8 for (int j=i-1;j>=0;j++){ 9 builder.insert(0,s.charAt(j)); 10 String word = builder.toString(); 11 if (dict.contains(word) && break[j]) { 12 break[i] = true; 13 break; 14 } 15 } 16 } 17 18 return break[s.length()]; 19 } 20 }