黑马程序员技术交流社区

标题: 作业题目. 三个for 练练思维. [打印本页]

作者: xianghui0521    时间: 2016-9-13 23:28
标题: 作业题目. 三个for 练练思维.
分析以下需求,并用代码实现:
                (1)打印一个字符串的全字符组合情况,原始字符
        串中没有重复字符
                (2)例如:原始字符串是"def", 打印得到下列所有组合情况:               
                                "d" "e" "f" "de" "df" "ed" "ef" "fd"
                                "fe" "def" "dfe" "edf" "efd" "fde" "fed"*/
                /*Scanner scanner= new Scanner(System.in);
                System.out.println("请输入一个字符串(没有重复字符)");
                String line=scanner.nextLine();
                char[] cr=line.toCharArray();
               
                TreeSet<String> ts=new TreeSet<String>(new Comparator<String>() {
                        public int compare(String o1, String o2) {
                                int num=o1.length()-o2.length();
                                return num==0?o1.compareTo(o2):num;
                        };
                });
                for (int i = 0; i < cr.length; i++) {
                        ts.add(""+cr[i]);
                        for (int j = 0; j < cr.length; j++) {
                                if(cr[i]==cr[j]){
                                        continue;
                                }
                                ts.add(""+cr[i]+cr[j]);
                       
                        for (int k = 0; k < cr.length; k++) {
                                if(cr[i]==cr[j]||cr[i]==cr[k]||cr[j]==cr[k]){
                                        continue;
                                }
                                ts.add(""+cr[i]+cr[j]+cr[k]);
                                }
                        }
                       
                }
               
               
               
                System.out.println(ts);*/
               
作者: xianghui0521    时间: 2016-9-13 23:29
基础, 大神绕过.      
先别看 答案,  自己可以考虑做一下
作者: Jerry007    时间: 2016-9-13 23:31
看不懂
作者: 江月念华    时间: 2016-9-13 23:47
有点枚举的感觉,虽然没学过枚举,总觉得有更简单的算法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2