社区
Java SE
帖子详情
100分求解java中字母全排列的问题,在线等
junxi
2004-11-26 12:39:19
就是输入abc,显示结果为abc,acb,bac,bca,cba,cab
我是初学者,只会用JAVA
...全文
278
11
打赏
收藏
100分求解java中字母全排列的问题,在线等
就是输入abc,显示结果为abc,acb,bac,bca,cba,cab 我是初学者,只会用JAVA
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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吗?也就是说去掉重复的?
【华为OD机考真题】-
全排列
(B卷-
100
分
)(
Java
)
🔔本文收录于「2025华为OD机试真题(
Java
版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度
分
析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录
中
,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均搜集于互联网。 💗订阅福利:一次订阅,可永久免费阅读,提供
在线
答疑解惑,后续题库更新皆可阅读使用!
华为OD机试 -
全排列
- 深度优先搜索DFS(
Java
2024 C卷
100
分
)
每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN
在线
答疑。
【华为OD机试真题】
全排列
HUAWEI(C&C++&
java
&python&
Java
Script&go)
100
%通过率
已支持(C&C++&
java
&python&
Java
Script&go)
100
%通过率
【华为OD机考真题】- 考古学家(B卷-
100
分
)(Golang版)
🔔本文收录于「最新最全华为OD机试真题(Golang版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度
分
析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录
中
,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均精心搜集于互联网。 💗订阅福利:一次订阅,可永久免费阅读,提供
在线
答疑解惑,后续题库更新皆可阅读使用!
2026华为OD机考新系统真题 + 双机位C卷 + 往年真题 - 题库目录
分
值说明 + 考点说明+
在线
OJ
2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、
Java
多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章