😁 作者:Teddy (公众号:鸡仓故事汇)
⏰ 时间:2021年03月17日18:05:14
☁️ 天气:晴天
一、输入一个字符串,打印出该字符串中字符的所有排列?
* 例如下面案列
// 输入字符串abc,则打印出有字符a、b、c所能排出来的所有字符串。
abc
acb
bac
bca
cab
cba
二、代码解答
代码如下(示例):
package com.wx.mian;
/**
* @program: teddylife
* @description: 测试
* @author: Mr.Teddy
* @create: 2021-03-17 16:47
**/
public class Test {
public static void main(String[] args){
char[] cs = {'a','b','c'};
int length = cs.length;
recursionSwap(cs,0,length);
}
private static void swap(char[] cs,int index1,int index2){
char temp = cs[index1];
cs[index1]=cs[index2];
cs[index2]=temp;
}
private static void recursionSwap(char[] cs,int start,int length){
if(start>=length-1){
for (char c : cs) {
System.out.print(c);
}
System.out.println();
return; // 如果不return,会输出双数
}
for(int i=start;i<length;i++){
swap(cs,start,i);
recursionSwap(cs,start+1,length);
swap(cs,start,i);
}
}
}
总结
ok!到这里就大功告成,小编(Teddy)在这里先感谢大家的到来。
虽然不是太详细,小编已经很努力,给小编来个一键三连(点赞,关注,收藏),小编会越来越努力。。。