leetcode算法题--单词拆分

原题链接:https://leetcode-cn.com/problems/word-break/
一开始把这个题目想复杂了,题解的方法也是需要O(n*n)的复杂度,用动态规划做。
动态规划方程式为:

dp[i]=dp[j]+s.substr(j,i-j) is of wordDict
bool wordBreak(string s, vector<string>& wordDict) {
        int len=s.size();
        vector<bool> dp(len+1,0);
        dp[0]=true;
        for(int i=1;i<=len;i++){
            for(int j=0;j<i;j++){
                if(dp[j]&&find(wordDict.begin(),wordDict.end(),s.substr(j,i-j))!=wordDict.end())
                    dp[i]=true;
            }
        }
        return dp[len];
    }
发布了75 篇原创文章 · 获赞 12 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_20817327/article/details/104995155