<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)139:?jiǎn)卧~拆分

          共 1175字,需瀏覽 3分鐘

           ·

          2020-12-30 17:01

          算法的重要性,我就不多說(shuō)了吧,想去大廠,就必須要經(jīng)過(guò)基礎(chǔ)知識(shí)和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號(hào)后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問(wèn)題叫做?單詞拆分,我們先來(lái)看題面:
          https://leetcode-cn.com/problems/word-break/

          Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words.


          Note:


          The same word in the dictionary may be reused multiple times in the segmentation.

          You may assume the dictionary does not contain duplicate words.

          題意


          給定一個(gè)非空字符串 s 和一個(gè)包含非空單詞的列表 wordDict,判定 s 是否可以被空格拆分為一個(gè)或多個(gè)在字典中出現(xiàn)的單詞。

          說(shuō)明:

          拆分時(shí)可以重復(fù)使用字典中的單詞。
          你可以假設(shè)字典中沒(méi)有重復(fù)的單詞。


          樣例

          示例 1

          輸入: s = "leetcode", wordDict = ["leet", "code"]
          輸出: true
          解釋: 返回 true?因?yàn)?"leetcode"?可以被拆分成 "leet code"

          示例 2

          輸入: s = "applepenapple", wordDict = ["apple", "pen"]
          輸出: true
          解釋: 返回 true?因?yàn)?"applepenapple"?可以被拆分成 "apple pen apple"。
          ? 注意你可以重復(fù)使用字典中的單詞。

          示例 3

          輸入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
          輸出: false


          解題


          這個(gè)題可以使用動(dòng)態(tài)規(guī)劃來(lái)解決。動(dòng)態(tài)規(guī)劃最重要的是狀態(tài)的定義,好的狀態(tài)定義能夠使解題非常簡(jiǎn)便。

          狀態(tài)定義:
          dp[i]:長(zhǎng)度為i的字符串能否拆成wordDict里邊的單詞組合

          狀態(tài)轉(zhuǎn)移方程:
          dp[i] = dp[j] && substr(j, i) in wordDict, (0 <= j < i)

          初始狀態(tài):
          dp[0]=true

          以下是C++代碼:

          class?Solution?{
          public:
          ????bool?wordBreak(string?s, vector<string>& wordDict)?{
          ????????vector<int> dp(s.size()+1, 0);
          ????????dp[0] = 1;
          ????????unordered_set<string> st(wordDict.begin(), wordDict.end());
          ????????for(int?i = 1; i <= s.size(); i++)
          ????????{
          ????????????for(int?j = 0; j < i; j++)
          ????????????{
          ????????????????auto?pos = st.find(s.substr(j, i-j));
          ????????????????if(dp[j] && pos != st.end())
          ????????????????{
          ????????????????????dp[i] = 1;
          ????????????????????break;
          ????????????????}
          ????????????}
          ????????}
          ????????return?dp[s.size()];
          ????}
          };


          好了,今天的文章就到這里,如果覺(jué)得有所收獲,請(qǐng)順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動(dòng)力。

          上期推文:

          LeetCode1-120題匯總,希望對(duì)你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)121:買賣股票的最佳時(shí)機(jī)
          LeetCode刷題實(shí)戰(zhàn)122:買賣股票的最佳時(shí)機(jī) II
          LeetCode刷題實(shí)戰(zhàn)123:買賣股票的最佳時(shí)機(jī) III
          LeetCode刷題實(shí)戰(zhàn)124:二叉樹中的最大路徑和
          LeetCode刷題實(shí)戰(zhàn)125:驗(yàn)證回文串
          LeetCode刷題實(shí)戰(zhàn)126:?jiǎn)卧~接龍 II
          LeetCode刷題實(shí)戰(zhàn)127:?jiǎn)卧~接龍
          LeetCode刷題實(shí)戰(zhàn)128:最長(zhǎng)連續(xù)序列
          LeetCode刷題實(shí)戰(zhàn)129:求根到葉子節(jié)點(diǎn)數(shù)字之和
          LeetCode刷題實(shí)戰(zhàn)130:被圍繞的區(qū)域
          LeetCode刷題實(shí)戰(zhàn)131:分割回文串
          LeetCode刷題實(shí)戰(zhàn)132:分割回文串 II
          LeetCode刷題實(shí)戰(zhàn)133:克隆圖
          LeetCode刷題實(shí)戰(zhàn)134:加油站
          LeetCode刷題實(shí)戰(zhàn)135:分發(fā)糖果
          LeetCode刷題實(shí)戰(zhàn)136:只出現(xiàn)一次的數(shù)字
          LeetCode刷題實(shí)戰(zhàn)137:只出現(xiàn)一次的數(shù)字 II
          LeetCode刷題實(shí)戰(zhàn)138:復(fù)制帶隨機(jī)指針的鏈表


          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国内外成人在线视频导航 | 伊人综合电影 | 大香蕉人在线 | 欧美黄色电影在线 | 爱爱日韩|