新博文地址:[leetcode]Word Break
Word Break
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".
For example, given
s = "leetcode",
dict = ["leet", "code"].
Return true because "leetcode" can be segmented as "leet code".
好奇怪,这道题很早之前做的,为啥没有写博客呢。反正没啥难度,现在补一下吧
public String reverse(String s){
StringBuilder tem = new StringBuilder();
for(int i = s.length()-1; i >= 0; i--){
tem.append(s.charAt(i));
}
return tem.toString();
}
public boolean wordBreak(String s, Set<String> dict) {
s = reverse(s);
Set<String> set = new HashSet<String>();
for(String tem: dict){
tem = reverse(tem);
set.add(tem);
}
if(s == null){
return true;
}
if(s.isEmpty()){
return true;
}
for(String tem : set){
if(s.startsWith(tem)){
String subString = s.substring(tem.length());
if(wordBreak(subString, set)){
return true;
}else{
continue;
}
}
}
return false;
}