回溯法 | 单词拆分 ||

class Solution {
    List<String> ss = new ArrayList<>();
    public List<String> wordBreak(String s, List<String> wordDict) {

        dfs(s,wordDict,"",0);

        return ss;
    }
    public void dfs(String s, List<String> wordDict, String res, int idx){
        if(idx==s.length()){
            ss.add(res.trim());
            return;
        }
        //去掉外循环
        for(int j=idx+1;j<=s.length();j++){
            if(wordDict.contains(s.substring(idx,j))){
                int l = res.length();
                res = res + " " + s.substring(idx,j);
                dfs(s,wordDict,res,j);
                res = res.substring(0,l);
            }
        }
        
    }
}


全部评论
这个方法好
点赞 回复 分享
发布于 2022-08-26 19:49 陕西

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务