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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李永佳 于 2015-12-17 18:50 编辑

import java.util.*;
class Test{
        public static void main(String[] args){
                String str = "abc";
                char[] arr = str.toCharArray();
                StringBuffer sb = new StringBuffer();
                ArrayList<String> list = new ArrayList<String>();
                for(int x=0;x<arr.length;x++){
                        for(int y=0;y<arr.length;y++){
                                for(int z=0;z<arr.length;z++){
                                        if(!sb.toString().contains(String.valueOf(arr[x])))
                                                sb.append(arr[x]);
                                        if(!sb.toString().contains(String.valueOf(arr[y])))
                                                sb.append(arr[y]);
                                        if(!sb.toString().contains(String.valueOf(arr[z])))
                                                sb.append(arr[z]);
                                        if(!list.contains(sb.toString()))
                                                list.add(sb.toString());
                                        sb.delete(0,sb.length());
                                }
                        }
                }
                System.out.println(list);
        }
}
程序现在不够延续性,一个字母需要有一个for,这样子搞的很麻烦,还没想到更好的办法。

我觉得递归应该可以简单的实现这个代码,但是没想出来该怎么用。哪位大神帮帮忙,教教用递归实现这个需求???

0 个回复

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