class Solution {
public String[] permutation(String s) {
Set<String> res = new HashSet<>();
combination(res,s,new StringBuilder(),new boolean[s.length()]);
return res.toArray(new String[res.size()]);
}
public void combination(Set<String> res,String str,StringBuilder sb,boolean[] marked){
if (sb.length() == str.length()){
res.add(sb.toString());
return;
}
for (int i = 0;i < str.length();i++){
if(!marked[i]){
marked[i] = true;
sb.append(str.charAt(i));
combination(res,str,sb,marked);
sb.deleteCharAt(sb.length() - 1);
marked[i] = false;
}
}
}
}
leetcode.cn_面试题 08.08. 有重复字符串的排列组合
最新推荐文章于 2024-07-16 23:15:32 发布