字符串的全排列

Posted 梵高先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串的全排列相关的知识,希望对你有一定的参考价值。

 1 import org.junit.Test;
 2 
 3 public class AllSort {
 4 
 5     public void permutation(char[] buf, int start, int end) {
 6         if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可
 7             for (int i = 0; i <= end; i++) {
 8                 System.out.print(buf[i]);
 9             }
10             System.out.println();
11         } else {// 多个字母全排列
12             for (int i = start; i <= end; i++) {
13                 char temp = buf[start];// 交换数组第一个元素与后续的元素
14                 buf[start] = buf[i];
15                 buf[i] = temp;
16 
17                 permutation(buf, start + 1, end);// 后续元素递归全排列
18 
19                 temp = buf[start];// 将交换后的数组还原
20                 buf[start] = buf[i];
21                 buf[i] = temp;
22             }
23         }
24     }
25 
26     @Test
27     public void testPermutation() throws Exception {
28         char[] buf = new char[] { ‘a‘, ‘b‘, ‘c‘ };
29         permutation(buf, 0, 2);
30     }
31 }

 

以上是关于字符串的全排列的主要内容,如果未能解决你的问题,请参考以下文章

递归 - 求数字/字符串的全排列

字符串的全排列

算法——全排列

算法习题---字符串的全排序列

js-FCC算法-No repeats please字符串的全排列

字符串的全排列