LeetCode-Word Break

LiBlog發表於2015-01-05

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 }

 

相關文章