黑马程序员技术交流社区
标题:
一道面试题
[打印本页]
作者:
八戒
时间:
2015-7-9 20:21
标题:
一道面试题
编程并打印出字符串的所有组合形式
以"abc"为例
"a""b""c"
"ab""ac""bc""cb""ca""ba"
"abc""acb""bca""bac""cab""cba"
这道题怎么做?求大神指点迷津.......
作者:
tsiov
时间:
2015-7-9 20:24
用三重For循环即可。
作者:
任文龙
时间:
2015-7-9 20:25
是给定字符还是给定字符串?
作者:
liaohaojin
时间:
2015-7-9 20:39
刚学循环,慢慢想下。。。
作者:
wx_HWRW5aF7
时间:
2015-7-9 21:01
假设有n哥字母参与排序,第一排有n个字符 第二排有C(2,3)*A(2,2) 个字符串 第三排有A(3,3)个字符串,
作者:
钟志军zzj
时间:
2015-7-9 21:14
三重for就可以
作者:
为明天而奋斗
时间:
2015-7-9 21:14
不太清楚哦
作者:
WElife
时间:
2015-7-9 21:43
给你一种答案。。。
public class Sort{
public void permutation(char[] buf, int start, int end) {
if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可
for (int i = 0; i <= end; i++) {
System.out.print(buf[i]);
}
System.out.println();
} else {// 多个字母全排列
for (int i = start; i <= end; i++) {
char temp = buf[start];// 交换数组第一个元素与后续的元素
buf[start] = buf[i];
buf[i] = temp;
permutation(buf, start + 1, end);// 后续元素递归全排列
temp = buf[start];// 将交换后的数组还原
buf[start] = buf[i];
buf[i] = temp;
}
}
}
public void testPermutation() throws Exception {
char[] buf = new char[] { 'a', 'b', 'c' };
permutation(buf, 0, 2);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2