public boolean wordBreak(String s, List<String> wordDict) {
int n=s.length();
boolean[] dp=new boolean[n+1];//前i个字符是否可以拼接
dp[0]=true;//初始化,空字符可以用0个单词拼接
for (int i = 1; i < n+1; i++) {
//往前查找,直到发现一个单词以第i个字符结尾并在字典中出现过,当这个单词之前的字符串可以拼接时,dp[i]为true
for (int j = i-1; j >=0 ; j--) {
String word=s.substring(j,i);
if(wordDict.contains(word)&&dp[j])
{
dp[i]=true;
break;
}
}
}
return dp[n];
}
动态规划算法leetcode.139
最新推荐文章于 2024-05-05 16:41:18 发布