leetCode_Word Break

来源:互联网 发布:淘宝app的开发 编辑:程序博客网 时间:2024/06/08 13:44

题意:给定一个单词和一个单词序列,看看这个单词能不能分割成一系列单词,并且分割后的单词都在单词序列当中

解法:很简单的dp,用s[0...word.length]表示到第几位能否分割。若word.substring(0,i+1)在这个单词里或者s[j]=true并且word.substring(j+1,i+1)在这个单词序列里,则s[i]=true。最后返回的值为s[word.length-1]

代码如下:

public class Solution {public boolean wordBreak(String s, Set<String> wordDict) {boolean[] has = new boolean[s.length()];int i, j, k;for (i = 0; i < s.length(); i++) {if (wordDict.contains(s.substring(0, i + 1)))has[i] = true;for (j = 0; j < i; j++) {if (has[j] == true && wordDict.contains(s.substring(j + 1, i + 1)))has[i] = true;}}return has[s.length() - 1];}}


0 0