算法(二十)
1、给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。 例如: 给定s=“leetcode”; dict=["leet", "code"]. 返回true,因为"leetcode"可以被分割成"leet code". 参考代码如下: public boolean wordBreak(String s, Set<String> dict) { if(s==null || s.length()==0 || dict == null || dict.size() == 0){ return false; } boolean[] flag = new boolean[s.length() + 1]; flag[0] = true; for(int i=1; i<=s.length();i++){ for(int j=i-1; j>=0; j--){ if(flag[j] && dict.contains(s.substring(j,i))){ flag[i] = true; break; }else{ flag[i] = false; } } } return flag[s.length()]; } 2、给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子