100分求解java中字母全排列的问题,在线等

junxi 2004-11-26 12:39:19
就是输入abc,显示结果为abc,acb,bac,bca,cba,cab
我是初学者,只会用JAVA

...全文
243 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
FutureStonesoft 2004-11-28
  • 打赏
  • 举报
回复
//算法就是treeroot(根根)的
//Pailie.java
import java.util.*;
import java.io.*;

public class Pailie
{

static List arrange(String s)
{
if ((s==null)||(s.length()==0)) throw new IllegalArgumentException();
int len=s.length();

List list=new ArrayList();
if(len==1) {
list.add(s);
return list;
}

char c=s.charAt(0);
List temp=arrange(s.substring(1));
StringBuffer sb=new StringBuffer(len);
for(int i=0;i<temp.size();i++){
for(int j=0;j<len;j++){
sb.setLength(0);
sb.append((String)temp.get(i));
sb.insert(j,c);
list.add(sb.toString());
}
}
return list;
}

public static void main(String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please input a string:");
String str=br.readLine();
List l=arrange(str);
for(int i=0;i<l.size();i++)
{
System.out.println(l.get(i));
}
}
}
junxi 2004-11-28
  • 打赏
  • 举报
回复
怎么没有人回答了,问题还没有解决啊!

谁把楼上的递归测试的原代码贴出来,分全部献上,不够可以再加100

在线等待,急啊

treeroot 2004-11-26
  • 打赏
  • 举报
回复
如果有10个字符我运行时就 OutOfMemoryError了.
效率比较差
treeroot 2004-11-26
  • 打赏
  • 举报
回复
用递归实现的:

static List arrange(String s){
if ((s==null)||(s.length()==0)) throw new IllegalArgumentException();
int len=s.length();

List list=new ArrayList();
if(len==1) {
list.add(s);
return list;
}

char c=s.charAt(0);
List temp=arrange(s.substring(1));
StringBuffer sb=new StringBuffer(len);
for(int i=0;i<temp.size();i++){
for(int j=0;j<len;j++){
sb.setLength(0);
sb.append((String)temp.get(i));
sb.insert(j,c);
list.add(sb.toString());
}
}
return list;
}
junxi 2004-11-26
  • 打赏
  • 举报
回复
你是怎么测试的啊?能否把你的测试代码让我参考一下,待会分全给你!
我现在被搞糊涂了!!~~~~~~~~~



taoyi 2004-11-26
  • 打赏
  • 举报
回复
使用SortedSet~
sirfei 2004-11-26
  • 打赏
  • 举报
回复
用循环进行连接
catblue 2004-11-26
  • 打赏
  • 举报
回复
把输入的字符串拆成数组,然后用循环进行连接
treeroot 2004-11-26
  • 打赏
  • 举报
回复
真呀晕,除了没有倒入java.util.*;之外我实在想不出怎么会出错。
只要会写HelloWorld就没有问题
junxi 2004-11-26
  • 打赏
  • 举报
回复
to:treeroot(根根)
你测试这个方法的原代码可以让我看一下吗?

谢谢

我测试的时候总是出错,哎!!~~~~~~~~~~
eikoor 2004-11-26
  • 打赏
  • 举报
回复
如果输出aaa呢?是只输出一个aaa吗?也就是说去掉重复的?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧