Java全排列abc_java 字符串是"abc",打印得到所有组合情况,求解思想

packagetemp;/***编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符例如:原始字符串是"abc",打印得到下列所有组合情况"a""b""c""ab""bc""ca""ba""cb""ac""abc""acb""b...

package temp;/** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 例如:

原始字符串是"abc",打印得到下列所有组合情况

"a" "b" "c"

"ab" "bc" "ca" "ba" "cb" "ac"

"abc" "acb" "bac" "bca" "cab" "cba" * @author Administrator * */import java.util.LinkedHashSet;import java.util.Set;

public class Demo { public static void main(String[] args) { String input = "abc"; // 求a/b/c三个字符的全排列 Set results = new LinkedHashSet(); results.add(""); for (int i = 0; i < input.length(); i++) { for (int j = 0; j < input.length(); j++) { String current = input.substring(j, j + 1); Set newones = new LinkedHashSet(); for (String s : results) { if (s.indexOf(current) == -1) { s += current; } newones.add(s); } results.addAll(newones); } } results.remove(""); for (String s : results) { System.out.println(s); } System.out.println(results.size()); }}

代码贴上来有点乱弄一张图片,图片和代码内容一样啊~~

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值