A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 非5莫属 中级黑马   /  2014-7-10 15:33  /  783 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.nusof.main;

import java.util.LinkedHashSet;
import java.util.Set;

public class Test {
        public static void main(String[] args) {
                String input = "abc"; // 求a/b/c三个字符的全排列
                Set<String> results = new LinkedHashSet<String>();
                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<String> newones = new LinkedHashSet<String>();
                                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);
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马