日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

每天一道LeetCode-----将字符串切分成若干单词,使得每个单词都在给定的字典中,求出所有的切分结果

發布時間:2024/4/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每天一道LeetCode-----将字符串切分成若干单词,使得每个单词都在给定的字典中,求出所有的切分结果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Word Break

原題鏈接Word Break

給定一個字符串和單詞字典,將字符串切分成若干個單詞,使每個單詞都在字典中。判斷是否可以成功切分

假設字符串s[0 : n-1]可以成功切分成若干個單詞,那么一定存在一個i使得s[0 : i-1]可以成功切分成若干個單詞,同時s[i : n-1]在字典中存在,可以采用動態規劃的思想求解

令dp[i]表示s[0 : i-1]是否可以成功切分成若干單詞組合,最終要求解的是dp[n]。

那么每求一個dp[i]使,就在i前面尋找是否存在一個j使得dp[j]為真且s[j : i-1]在字典中

代碼如下

class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> hash;size_t maxLen = 0;for(auto& word : wordDict){hash.insert(word);maxLen = std::max(maxLen, word.size());}vector<int> dp(s.size() + 1, 0);dp[0] = 1;for(int i = 1; i <= s.size(); ++i){for(int j = i - 1; j >= 0 && (i - j) <= maxLen; --j){/* 尋找一個j使得s[0 : j-1]可以拆分 */if(dp[j]){/* 判斷s[j : i-1]是否在字典中 */string word = s.substr(j, i - j);if(hash.find(word) != hash.end()){/* 標記s[0 : i-1]可以成功拆分 */dp[i] = 1;break;}}}}return dp[s.size()];} };

Word Break II

原題鏈接Word Break II

尋找所有的拆分結果

還是采用上述的思路,要將s[0 : n-1]拆分,那么就從后向前尋找i使得s[i : n-1]在字典中,然后拆分s[0 : i-1],將結果進行組合

代碼如下

class Solution { public:vector<string> wordBreak(string s, vector<string>& wordDict) {unordered_set<string> hash;for(auto& word : wordDict)hash.insert(word);return breakWord(s, hash);} private:vector<string> breakWord(string& s, unordered_set<string>& hash){/* 防止重復計算 */if(m.find(s) != m.end())return m[s];vector<string> res;for(int i = s.size() - 1; i >= 0; --i){string word = s.substr(i);if(hash.find(word) != hash.end()){string str = s.substr(0, i);vector<string> prevWords = breakWord(str, hash);for(auto& words : prevWords)res.emplace_back(words + " " + word);if(i == 0)res.emplace_back(word);}}m[s] = res;return res;} private:unordered_map<string, vector<string>> m; };

總結

以上是生活随笔為你收集整理的每天一道LeetCode-----将字符串切分成若干单词,使得每个单词都在给定的字典中,求出所有的切分结果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费网站黄色 | 手机av在线网 | 亚洲免费精品 | 级毛片| 久久综合五月 | 激情午夜天| 激情久久综合 | 国产精品成人国产乱 | 国产精品一区在线 | 欧美性猛交乱大交xxxx | 免播放器在线视频 | 国产女优在线播放 | 69精品久久 | 国产精品无码AV | 超碰成人免费在线 | 水蜜桃久久 | 久操国产 | 激情综合一区二区三区 | 日韩av影视大全 | 日本无遮羞调教打屁股网站 | 亚洲高清免费 | 成人精品一区二区三区电影 | 欧美在线影院 | 成人交性视频免费看 | 亚洲欧美一区二区在线观看 | 广州毛片 | 亚洲AV无码成人精品区明星换面 | 欧美日韩一区二区三区四区五区 | 中文字幕麻豆 | 精品人妻一区二区三区日产乱码卜 | 嫩草精品 | 黄色一级在线 | 国产精品一二三四 | 超碰资源 | 国产一区二区免费在线 | 91无套直看片红桃 | 亚洲一区二区福利视频 | 国产福利91精品一区二区三区 | 99这里有精品视频 | 26uuu亚洲国产精品 | 看黄色的网址 | 毛片毛片毛片毛片毛片毛片毛片 | 香蕉伊人 | 精品人妻久久久久一区二区三区 | 天天操人人射 | 少妇真实被内射视频三四区 | 日本一本高清视频 | av永久| 免费观看日韩毛片 | 国内福利视频 | 99热只有这里有精品 | a毛片 | 日韩毛片一区二区三区 | 日本高清免费看 | 成年人午夜视频 | 中国少妇乱子伦视频播放 | 伊人福利在线 | 粗大的内捧猛烈进出视频 | 婷婷网址 | 91性色| 99精品福利视频 | 亚洲一线在线观看 | www.婷婷 | 成年人a级片 | 高hnp视频 | 亚洲激情视频网站 | 午夜电影一区二区三区 | 久久精品无码一区二区三区免费 | 欧美日韩国产一级片 | 好男人在线观看 | 国产高潮自拍 | 国产大片一区二区三区 | av久久久久久 | 日韩欧美在线一区二区 | 久久888 | 亚洲无在线观看 | 狠狠操在线视频 | 女人高潮被爽到呻吟在线观看 | 亚洲一区自拍偷拍 | 青草在线视频 | 成人听书哪个软件好 | 哺乳援交吃奶在线播放 | 黑人巨大精品欧美一区二区免费 | 日本视频免费观看 | 国产三级精品在线观看 | av影片在线| 亚洲一区欧美激情 | 一级小毛片 | 精品在线播放视频 | 91精品91久久久中77777老牛 | 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 国产精品一区二区三区四区 | 亚洲精品在线免费观看视频 | 蜜桃av网站 | 91黑人精品一区二区三区 | 欧美在线小视频 | 一区二区三区在线 | 久久影库| 精品少妇人妻一区二区黑料社区 |