社区
Java SE
帖子详情
100分求解java中字母全排列的问题,在线等
junxi
2004-11-26 12:39:19
就是输入abc,显示结果为abc,acb,bac,bca,cba,cab
我是初学者,只会用JAVA
...全文
246
11
打赏
收藏
100分求解java中字母全排列的问题,在线等
就是输入abc,显示结果为abc,acb,bac,bca,cba,cab 我是初学者,只会用JAVA
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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吗?也就是说去掉重复的?
第七届蓝桥杯
Java
大学B组(省赛试题)答案
在"煤球数目"
问题
中
,煤球的每一层都是一个等差数列。第一层有1个,第二层有3个,第三层有6个,以此类推,这是一个等差数列,首项为1,公差为2(因为每层比上一层多2个)。第n层的元素个数可以通过公式求得:`n + ...
JAVA
经典算法32题
在
Java
编程
中
,算法是解决
问题
的关键。以下是一些基于给定题目所涉及的
Java
算法知识点: 1. **斐波那契数列**:程序1展示了斐波那契数列的实现,其
中
`f(x)`函数使用递归方法计算第`x`个月的兔子数量。斐波那契数列...
Java
基础50道经典练习题
- 给定一个整数,加上
100
和168后
分
别得到两个完全平方数。 - 需要遍历一定范围内的数字,按照题目的条件进行验证。 14. 日期计算(求日期): - 输入某年某月某日,计算该日是年内的第几天。 - 需要考虑到闰年...
第七届蓝桥杯
Java
B组试题
因为每个
字母
代表不同的数字,所以可以使用
全排列
的方法
求解
。 **解答:** 通过编写程序对1~9进行
全排列
,并检查每一个排列是否满足题目
中
的算式条件,最后统计满足条件的排列总数。由于
全排列
的数量为9!,因此可以...
浦发银行机考历年真题(3).pdf
20. 查找字符串数组
中
的最长公共前缀:一个常见的字符串数组处理
问题
,可以通过逐个字符比较的方式
求解
。 21. 字符串前导零填充
问题
:通常涉及到字符串和数字的转换。 22. 单词首
字母
大写
问题
:涉及到字符串遍历和...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章