描述
给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。
例如:
给定s=“nowcode”;
dict=["now", "code"].
返回true,因为"nowcode"可以被分割成"now code".
/** * 方法二: * 状态转移方程: * f(i) 表示s[0,i]是否可以分词 * f(i) = f(j) && f(j+1,i); 0 <= j < i; * */ public boolean wordBreak2(String s, Set<String> dict){ int len = s.length(); boolean[] arrays = new boolean[len+1]; arrays[0] = true; for (int i = 1; i <= len; ++i){ for (int j = 0; j < i; ++j){ if (arrays[j] && dict.contains(s.substring(j, i))){ arrays[i] = true; break; } } } return arrays[len]; }