• 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".

    动态规划的思想,分别考虑n+1个划分点是否是breakable的,当前i位置是否可以breakable由breakable[j]和s.substring(j,i)是否存在于dict中决定,即breakable[i]=

    breakable[j]&dict.contains(s.substring(j,i)) 其中j∈[0,i-1].

    public class Solution {
        public boolean wordBreak(String s, Set<String> dict) {
            int size = s.length();
            boolean[] breakable = new boolean[size+1];
            breakable[0] = true;
            for(int i=1;i<=size;i++) {
                for(int j=0;j<i;j++) {
                    if(breakable[j]&&dict.contains(s.substring(j,i))) {
                        breakable[i] = true;
                        break;
                    }
                }
            }
            return breakable[size];
        }
    }
  • 相关阅读:
    P1629 邮递员送信
    P1119 灾后重建
    最短路问题
    P1194 买礼物
    最小生成树
    P1038 神经网络
    P2661 信息传递
    mysql 5.7启动报错
    docker flannel网络部署和路由走向分析
    k8s---无头服务
  • 原文地址:https://www.cnblogs.com/mrpod2g/p/4356981.html
Copyright © 2020-2023  润新知