剑指 Offer 38. 字符串的排列
class Solution {
Set<String> set=new HashSet<>();
public String[] permutation(String s) {
StringBuilder sb=new StringBuilder();
boolean[] used=new boolean[s.length()];
backtracking(s,"",used);
return set.toArray(new String[0]);
}
public void backtracking(String s,String str,boolean[] used){
if(str.length()==s.length()){
set.add(str);
return;
}
for(int i=0;i<s.length();i++){
if(used[i]==true){
continue;
}
used[i]=true;
backtracking(s,str+s.charAt(i),used);
used[i]=false;
}
}
}
该博客探讨了如何使用深度优先搜索(DFS)解决字符串的所有排列问题。提供的Java代码实现了一个名为`Solution`的类,其中包括一个`permutation`方法,该方法通过回溯策略生成给定字符串的所有可能排列并存储在哈希集中。博客详细解释了回溯法在字符串排列问题中的应用,并展示了如何避免重复排列。
357

被折叠的 条评论
为什么被折叠?



