算法 给定一个字符串“catanddog”和一个字符串集合Set dic = {“cat”, “ca”, “and”, “dog”},判断dic中是否可以取出一个子集,这个子集可以组成给定字符串。 例如:catanddog在dic中 catandrow则不在当中 catanddogandrow也不在当中
import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class sp { static Set<String> set = new HashSet(); static { set.add("cat"); set.add("and"); set.add("dogs"); set.add("ca"); set.add("cas"); } public static void main(String[] args) { String str = "catanddogs"; System.out.println(contain(str)); } public static boolean contain(String string){ if (set.contains(string)) { return true; } for (String s : set) { String[] split = string.split(s); if (split.length == 1) { continue; } boolean result = true; for (String str: split) { boolean contain = contain(str); if (!contain) { result = false; break; } } if (result) { return result; } } return false; } }