自适应网站模板公司,网址查询域名,wordpress适合外贸的主题,怎么创建网页活动题目
输入一个字符串#xff0c;打印出该字符串中字符的所有排列。
你可以以任意顺序返回这个字符串数组#xff0c;但里面不能有重复元素。
示例:
输入#xff1a;s “abc” 输出#xff1a;[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]
限制#xff1a;
1…
题目
输入一个字符串打印出该字符串中字符的所有排列。
你可以以任意顺序返回这个字符串数组但里面不能有重复元素。
示例:
输入s “abc” 输出[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]
限制
1 s 的长度 8
解题思路 将字符串转化为字符数组每次在字符数组中选择一个字符填入特定位置并记录下已经使用了的字符当字符都用完以后产生的字符序列就是其中一个排列 因为1 s 的长度 8所以可以直接使用byte记录下已经被选择的字符
代码
class Solution {SetString resnew HashSet();public String[] permutation(String s) {char[] chars s.toCharArray();bcP(chars,0, (byte) 0,new StringBuilder());String[] ress new String[res.size()];IteratorString iterator res.iterator();for (int i 0; i res.size(); i) {ress[i]iterator.next();}return ress;}public void bcP(char[] chars,int cur,byte check,StringBuilder stringBuilder){if(curchars.length){res.add(stringBuilder.toString());}for (int i0,th1(chars.length-1);ichars.length;i,th1){if((thcheck)!0)continue;check^th;stringBuilder.append(chars[i]);bcP(chars,cur1,check,stringBuilder);stringBuilder.deleteCharAt(stringBuilder.length()-1);check^th;}}
}