// 单词拆分-动态规划
// 输入: s = "leetcode", wordDict = ["leet", "code"]
// 输出: true
// 解释: 返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。
public static boolean wordBreak(String s, List<String> wordDict){
Set<String> wordDictSet=new HashSet<String>(wordDict);
boolean[] dp=new boolean[s.length()+1];
//0-0
dp[0]=true;
for (int i = 1; i <=s.length() ; i++) {
for (int j = 0; j <i ; j++) {
// 0-j true
// j-i true
// 0-i true
if(dp[j]&&wordDictSet.contains(s.substring(j,i))){
dp[i]=true;
break;
}
}
}
return dp[s.length()];
}
单词拆分-动态规划
最新推荐文章于 2024-09-07 16:56:49 发布
文章介绍了如何利用动态规划方法判断给定字符串`s`是否能通过wordDict中的单词拼接而成。通过构建布尔数组dp,实现对字符串子串的逐个检查和匹配。
摘要由CSDN通过智能技术生成