本篇文章主要介绍了"[算法学习]Java实现字符串全排列",主要涉及到方面的内容,对于Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
思路:这里用到递归的方式完成字符数据的全排列,递归确实很方便。看似没用到辅助空间,实际上却是消耗了栈空间(“递归栈”),递归用起来也不是那么简单,解决问题用递归...
思路:这里用到递归的方式完成字符数据的全排列,递归确实很方便。看似没用到辅助空间,实际上却是消耗了栈空间(“递归栈”),递归用起来也不是那么简单,解决问题用递归的时候,一定要关注到两个零界点,怎么开始和怎么结束。
代码
/**
* 实现字符数组全排列
*
* @author kesar
*
*/publicclassTestPermute{publicstaticvoidpermute(String str)
{
char[] ca = str.toCharArray();
permute(ca, 0, ca.length - 1);
}
/**
* 核心方法:用了递归的方式完成全排列,用递归的思路是要怎么开始,怎么结束,想想这两个临界点。
* @param str
* @param low
* @param hight
*/publicstaticvoidpermute(char[] str, int low, int hight)
{
if (low == hight)
{
// 递归结束for (int i = 0; i <= hight; i++)
System.out.print(str[i]);
System.out.println();
}
else {
for (int i = low; i <= hight; i++)
{
//首先交换开始的字符位置(这里交换字符值不能用异或,会出现奇怪字符)//这个交换是思路的关键,因为不想用辅助空间(一用就很多浪费),所以才选择交换位置。char temp = str[low];
str[low] = str[i];
str[i] = temp;
// 递归开始
permute(str, low + 1, hight);
}
}
}
/**
* @param args
*/publicstaticvoidmain(String[] args)
{
permute("abc");
}
}
输出
abc
acb
cab
cba
abc
acb
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('
').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介绍了[算法学习]Java实现字符串全排列,包括了方面的内容,希望对Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_302166.html