leetcode-139-单词拆分
生活随笔
收集整理的這篇文章主要介紹了
leetcode-139-单词拆分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
方法一:動態規劃 O(n^2) O(n)
class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: maxlen=0 for word in wordDict: if len(word)>maxlen: maxlen=len(word) res=[0]*len(s) for i in range(len(s)): p=i while(p>=0 and i-p<=maxlen): # 兩個條件 if (res[p]==1 and s[p+1:i+1] in wordDict) or (p==0 and s[p:i+1] in wordDict): res[i]=1 break p-=1 return True if res[-1]==1 else False另:
class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: arr,wordSet=[0],set(wordDict) for i in range(len(s)): for j in arr[::-1]: if s[j:i+1] in wordSet: arr.append(i+1) break return arr[-1]==len(s)方法二:記憶化回溯
方法三:寬度優先搜索
略
?
轉載于:https://www.cnblogs.com/oldby/p/11197397.html
總結
以上是生活随笔為你收集整理的leetcode-139-单词拆分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 实现 STL 标准库和算法(二)
- 下一篇: 【dp】POJ-2209