word break
生活随笔
收集整理的這篇文章主要介紹了
word break
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
題目描述:從字典dict中找某些子串來組合成s
思路:用dp來記錄以序號i為結尾的字符串能否在字典中匹配成功。
當有字符s[i]匹配不成功,而該字符前面的dp[j]出現了true,那么可以看是否有分割字符,即該j+1到i的子串看是否可以在字典中匹配。
例如s="abcd" dict=[a,b,abc,cd]
dp[0]=true
dp[1]=true
dp[2]=true
dp[3]=false,同時需要確定1~3,2~3,3~3(d字符本身)之間是否能在dict中找到,若找到則dp[3]=true
*/
class Solution {
public:string getSubStr(int start,int end,string s){return s.substr(start,end-start+1);}bool wordBreak(string s, unordered_set<string> &dict) {int len=s.size();int i=0,j=0;vector<bool> dp(len,false);for(i=0;i<len;++i){dp[i]=dict.count(getSubStr(0,i,s));if(dp[i]) continue;else{for(j=0;j<i;++j){if(dp[i]) break;if(dp[j])dp[i]=dict.count(getSubStr(j+1,i,s));}}}return dp[len-1];}
};
?
轉載于:https://www.cnblogs.com/fightformylife/p/4190124.html
總結
以上是生活随笔為你收集整理的word break的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++和C#实现剪切板数据交互
- 下一篇: 从“大数据”到“智能数据”