杂志社网站建设意义,大型网站建设完全教程,哪里有建设银行,微信自动加人软件代码随想录算法训练营第8周#xff08;C语言#xff09;|Day51#xff08;动态规划#xff09;
Day51、动态规划#xff08;包含题目 139.单词拆分 #xff09;
139.单词拆分
题目描述
给定一个非空字符串 s 和一个包含非空单词的列表 wordDict#xff0c;判定 s 是… 代码随想录算法训练营第8周C语言|Day51动态规划
Day51、动态规划包含题目 139.单词拆分
139.单词拆分
题目描述
给定一个非空字符串 s 和一个包含非空单词的列表 wordDict判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。
题目解答
char* substring(int j,int i,char*s){int leni-j;char*ret(char*)malloc(sizeof(char)*(len1));for(int z0;zlen;z ){ret[z]s[j];}ret[len]\0;return ret;
}
bool comparestring(char **wordDict,char*s,int wordDictSize){for(int i0;iwordDictSize;i){if(strcmp(wordDict[i],s)0){return true;}}return false;
}bool wordBreak(char* s, char** wordDict, int wordDictSize) {int lenstrlen(s);int dp[len1];char s1[len1];for(int i1,j0;ilen;i){s1[i]s[j];dp[j]0;}dp[0]1;for(int i1;ilen;i){for(int j0;ji;j){char*retsubstring(j,i,s1);if(comparestring(wordDict,ret,wordDictSize)dp[j]1){dp[i]1;}}}if(dp[len]1){return true;}return false;
}题目总结
多重背包问题。