import java.util.*;
public class Solution {
public ArrayList<String> wordBreak(String s, Set<String> dict) {
ArrayList<String> list = new ArrayList<>();
dfs(s, s.length(), "", dict, list);
return list;
}
/**
* index 末尾索引
*/
public void dfs(String s, int index, String str, Set<String> dict, List<String> list){
if(index <= 0){
if(str.length() > 0){
list.add(str.substring(0, str.length() - 1));
}
return;
}
for(int i = index; i >= 0; --i){
if(dict.contains(s.substring(i, index))){
dfs(s, i, s.substring(i, index) + " " + str, dict, list);
}
}
}
}