logologo

打印一个字符串的全部子序列 要求不要出现重复字面值的子序列

Oct 20, 2023

打印一个字符串的全部子序列 要求不要出现重复字面值的子序列

public static List<String> subNoRepeat(String s) {
  char[] str = s.toCharArray();
  String path = "";
  HashSet<String> set = new HashSet<>();
  process(str, 0, set, path);
  List<String> ans = new ArrayList<>();
  for (String cur : set) {
    ans.add(cur);
  }
  return ans;
}

private static void process(char[] str, int index, HashSet<String> set, String path) {
  if (index == str.length) {
    set.add(path);
    return;
  }
  String no = path;
  process(str, index + 1, set, no);
  String yes = path + String.valueOf(str[index]);
  process(str, index + 1, set, yes);
}

C++Java
浙ICP备2021022773号    2022-PRESENT © ZhengKe