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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linzi 中级黑马   /  2016-6-18 14:28  /  670 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(1)打印一个字符串的全字符组合情况,原始字符串中没有重复字符
(2)例如:原始字符串是"def", 打印得到下列所有组合情况:
"d" "e" "f" "de" "df" "ed" "ef" "fd" "fe" "def" "dfe" "edf" "efd" "fde" "fed"

TreeSet<String> ts = new TreeSet<>();
                ts.add("gd");
                ts.add("fs");
                ts.add("nk");
                ts.add("js");
                ts.add("tm");
               
                System.out.println(ts);
写完后没有思路了,请大神解决一下,3q





5 个回复

倒序浏览
我们set接口还没学
回复 使用道具 举报
还没学到这块。。。。。
回复 使用道具 举报

1,将字符串通过tochararray转为字符数组
2,第一次遍历数组将元素存入容器     得到 d e f
3,第一次遍历中嵌套第二次遍历. 第二次遍历中可得到 dd de df ed ee ef fd fe ff 排除dd ee ff后存容器
4,第二次遍历中嵌套第三次遍历,排除重复后得到 "def" "dfe" "edf" "efd" "fde" "fed"   ,然后存容器
回复 使用道具 举报
还是来一份简单粗暴的源码吧.(没学集合可用字符串数组做,长度为15)       
char[] ch = "def".toCharArray();
                ArrayList<String> list = new ArrayList<>();
                for (int i = 0; i < ch.length; i++) {
                        list.add(ch[i] + "");
                        for (int j = 0; j < ch.length; j++) {
                                if(ch[i] == ch[j]) {
                                        continue;
                                } else {
                                        list.add(ch[i] + "" +  ch[j]);
                                        for (int j2 = 0; j2 < ch.length; j2++) {
                                                if(ch[j2] == ch[j] || ch[j2] == ch[i]) {
                                                        continue;
                                                } else {
                                                        list.add(ch[i] + ""  + ch[j] + ch[j2]);
                                                }
                                        }
                                }
                        }
                }
                System.out.println(list);
回复 使用道具 举报
用arraylist 集合
先将字符串拆分成字符
然后用嵌套循环将字符拼接成字符串
接着就是将拼接好的字符串添加至集合中
最后打印
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马