做网站要学哪些,成都公司注册费用,wordpress js 调用图片,wordpress播放器代码一、概念 现有一个字符串#xff0c;要打印出该字符串中字符的全排列。 以字符串abc为例#xff0c;输出的结果为#xff1a;abc、acb、bac、bca、cab、cba。 以字符串aab为例#xff0c;输出的结果为#xff1a;aab、aba、baa。 二、代码
public class Permutation {pub…一、概念 现有一个字符串要打印出该字符串中字符的全排列。 以字符串abc为例输出的结果为abc、acb、bac、bca、cab、cba。 以字符串aab为例输出的结果为aab、aba、baa。 二、代码
public class Permutation {public static void main(String[] args) {ListString list getPermutation(abca);
// 输出结果dump(list);}
// 输出结果public static void dump(ListString list) {if (null ! list) {for (String str : list) {System.out.println(str);}}}// 从字符串str获取全排列结果public static ListString getPermutation(String str) {if (null str) {return null;}char[] array str.toCharArray();Arrays.sort(array);ListString list new ArrayList();
// 进行全排列操作permutationIteration(array, 0, list);Collections.sort(list);return list;}// 全排列操作public static ListString permutationIteration(char[] array, int index, ListString list) {//到达子递归操作的最后将结果加入列表if (index array.length - 1) {list.add(String.valueOf(array));return list;}for (int i index; i array.length; i) {//当要交换的字符值相同时则交换是使结果重复的操作故不予交换if (i ! index array[i] array[index]) {continue;}//交换2个位置的字符swap(index, i, array);
// 递归调用获取结果permutationIteration(array, index 1, list);
// 将交换操作还原回去swap(index, i, array);}return list;}/*** array: 字符数组* 交换字符数组中2个位置的字符*/public static void swap(int index1, int index2, char[] array) {if (index1 ! index2) {char tmp array[index1];array[index1] array[index2];array[index2] tmp;}}
} 致力于C、C、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享。
若作品对您有帮助请关注、分享、点赞、收藏、在看、喜欢。您的支持是我们为您提供帮助的最大动力。