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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李嘉泓 于 2015-4-3 00:36 编辑

编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
原始字符串是"abc",打印得到下列所有组合情况:
     "a" "b" "c"
     "ab" "bc" "ca" "ba" "cb" "ac"
    "abc" "acb" "bac" "bca" "cab" "cba"
做的事这道题
package com.itheima;

import java.util.ArrayList;
import java.util.List;

/**
*5、 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
     原始字符串是"abc",打印得到下列所有组合情况:
     "a" "b" "c"
     "ab" "bc" "ca" "ba" "cb" "ac"
    "abc" "acb" "bac" "bca" "cab" "cba"
*/
public class Test5 {
        static char[] chars="abcd".toCharArray();
    public static void main(String[] args) {
        for(int i=0;i<chars.length;i++){
            //取得每一个字符
            List<Integer> list=new ArrayList<Integer>();
            list.add(i);
            play(list);
        }
    }
    //使用递归,每次加上列表中不存在的一个字符
    private static void play(List<Integer> list){
        print(list);
        for(int i=0;i<chars.length;i++){
            if(!list.contains(i)){
                List<Integer> temp=new ArrayList<Integer>(list);
                temp.add(i);
                play(temp);
            }
        }
    }
    //打印列表内容
    private static void print(List<Integer> list){
        for(Integer i:list)
            System.out.print(chars+"");
        System.out.println();
    }
}

以上是代码
图片是这样的

捕获.PNG (26.65 KB, 下载次数: 32)

捕获.PNG

评分

参与人数 1黑马币 +2 收起 理由
Augusition + 2 淡定

查看全部评分

3 个回复

正序浏览
看看有没有大神
回复 使用道具 举报
我的能运行啊。应该是你的环境出问题了,找不到class文件

QQ截图20150331001535haha.png (114.51 KB, 下载次数: 33)

QQ截图20150331001535haha.png
回复 使用道具 举报
我也是没做出来,同样的问题卡住了,看看有没有大神知道
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马