网站硬件需求,建网站网站,高端电商设计公司,哪些平台可以做推广输入一个字符串#xff0c;打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组#xff0c;但里面不能有重复元素。 示例:
输入#xff1a;s abc 输出#xff1a;[abc,acb,bac,bca,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组但里面不能有重复元素。 示例:
输入s abc 输出[abc,acb,bac,bca,cab,cba]
限制
1 s 的长度 8
代码
class Solution { public String[] permutation(String s) { ListString result new ArrayList(); boolean visited[] new boolean[s.length()]; char arr[] s.toCharArray(); Arrays.sort(arr); StringBuilder x new StringBuilder(); helper(result,visited,arr,x); String res[] new String[result.size()]; for(int i0;iresult.size();i){ res[i] result.get(i); } return res; } public void helper(ListString result,boolean visited[],char arr[],StringBuilder x){ if(x.length()arr.length){ result.add(x.toString()); return; } for(int i0;iarr.length;i){ if(i!0arr[i]arr[i-1]visited[i-1]) continue; if(!visited[i]){ x.append(arr[i]); visited[i] true; helper(result,visited,arr,x); x.deleteCharAt(x.length()-1); visited[i] false; } } }
}