浏览 1591 次
锁定老帖子 主题:字符串全排列
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-30
最后修改:2012-05-30
固定a,求后面bc的排列:abc,acb,求好后,a和b交换,得到bac 固定b,求后面ac的排列:bac,bca,求好后,c放到第一位置,得到cba 固定c,求后面ba的排列:cba,cab。 代码可如下编写所示: public class Test { private static StringBuilder result = new StringBuilder(); public static void main(String[] args) { perm("abc".toCharArray(), 0); System.out.println(result.toString()); } public static void perm(char[] in, int start) { if (start == in.length - 1) { result.append(in); result.append("\n"); } else { for (int i = start; i < in.length; i++) { moveToHead(in, start, i); perm(in, start + 1); moveToHead(in, start, i); } } } public static void moveToHead(char[] in, int first, int second) { char temp = in[first]; in[first] = in[second]; in[second] = temp; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |