zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 140 单词拆分II

    class Solution {
         public List<String> wordBreak(String s, List<String> wordDict) {
     
            List<String> res = new ArrayList<>();
            int max = 0, min = Integer.MAX_VALUE;
            Set<String> set = new HashSet<>();
            for (String word : wordDict) {
                set.add(word);
                max = Integer.max(max, word.length());
                min = Integer.min(min, word.length());
            }
     
            boolean f[] = new boolean[s.length() + 1];
            f[0] = true;
            for (int i = 1; i < s.length() + 1; i++) {
                for (int j = Math.max(i - max, 0); j <= i - min; j++) {
                    if (f[j] && set.contains(s.substring(j, i))) {
                        f[i] = true;
                        break;
                    }
                }
            }
            if (f[s.length()]) {
                dfs(s, res, new StringBuilder(), set, 0, max, min);
            }
            return res;
        }
     
        private void dfs(String s, List<String> res, StringBuilder sb, Set<String> set, int index, int max, int min) {
            if (index == s.length()) {
                sb.deleteCharAt(sb.length() - 1);
                res.add(sb.toString());
                return;
            }
            String str;
            int size;
            for (int i = index + min; i <= s.length() && i <= index + max; i++) {
                if (set.contains(str = s.substring(index, i))) {
                    size = sb.length();
                    sb.append(str).append(' ');
                    dfs(s, res, sb, set, i, max, min);
                    sb.delete(size, sb.length());
                }
            }
        }
    }
    
  • 相关阅读:
    宝塔面板的数据库使用
    Spring MVC入门
    从分式第n项到线性递推——bostan-mori 算法的扩展应用
    计算几何专题训练
    博客整理
    wpf ScrollViewer自动滚到最上
    word2Vec笔记2021
    好用工具备份
    Samtools pick up seq
    Ryzen核显需要扩大显存吗?
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076114.html
Copyright © 2011-2022 走看看