zoukankan      html  css  js  c++  java
  • 边工作边刷题:70天一遍leetcode: day 11-4

    Word Break I/II

    现在看都是小case题了,一遍过了。注意这题不是np complete,dp解的time complexity可以是O(n^2) or O(nm)。所有解的个数是exponential的 (比如”aaaa....”, dict="a, aa”)。以前在amazon onsite遇到过,不过既不是返回True/False,也不是所有解,而是一个解。其实一个解和True/False是一个复杂度,因为单一解是可以从dp反向重构的。

    class Solution(object):
        def wordBreak(self, s, wordDict):
            """
            :type s: str
            :type wordDict: Set[str]
            :rtype: bool
            """
            n = len(s)
            dp = [False]*(n+1)
            dp[0]=True
            for i in range(1, n+1):
                for j in range(i):
                    if s[j:i] in wordDict and dp[j]:
                        dp[i]=True
                        
            return dp[n]
    
  • 相关阅读:
    NCPC2016
    2016 ACM-ICPC CHINA-Final
    2016沈阳区域赛题解
    NAIPC2016部分题解
    Gym
    数论之莫比乌斯反演
    2018 多校 HDU
    LightOJ
    LightOJ
    java操作XML---XML基础知识
  • 原文地址:https://www.cnblogs.com/absolute/p/5675816.html
Copyright © 2011-2022 走看看