用JAVA的函数递归写出一个程序实现对任意字符串的所有排列的形式.类如: 输入 "abc" 10

 我来答
渠料头X
2006-09-08 · TA获得超过623个赞
知道小有建树答主
回答量:528
采纳率:0%
帮助的人:221万
展开全部
此题有点挑战性,欢迎各位优化或改进这个算法:
/*
* StringArrange.java
*
* Created on 2006年9月8日, 下午6:44
*

*/

package javaapplication1;

/**
*
* @author lanxiazhi
*/
public class StringArrange {

/** Creates a new instance of StringArrange */
public StringArrange() {

}
private StringBuffer[] arrange(StringBuffer[]sbs,char addChar){
int m=sbs.length;
int n=sbs[0].length();
StringBuffer[] result=new StringBuffer[m*(n+1)];

for(int i=0;i<m;i++)
for(int j=0;j<n+1;j++){
result[i*(n+1)+j]=new StringBuffer(sbs[i].toString()).insert(j,addChar);
}
return result;
}
public StringBuffer[] form(String s){
if(s.length()==1)return new StringBuffer[]{new StringBuffer(s)};
else
return arrange(form(s.substring(0,s.length()-1)),s.charAt(s.length()-1));
}
public static void main(String[] args) {
String s="abcd";
StringBuffer[] result=new StringArrange().form(s);
System.out.println("total: "+result.length);
for(int i=0;i<result.length;i++){
System.out.println(result[i]);
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式