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"
.
public class Solution {
public boolean wordBreak(String s, Set<String> dict) {
return wordBreakHelper(s, dict, 0);
}
public boolean wordBreakHelper(String s, Set<String> dict, int start)
{
if (start == s.length()) return true;
for (String tmp : dict) {
int len = tmp.length();
int end = start + len;
if (end > s.length()) continue;
if (s.substring(start, end).equals(tmp)) {
if (wordBreakHelper(s, dict, end)) return true;
}
}
return false;
}
}