陈旺


私信TA

用户名:cw0824ly

访问量:10928

签 名:

等  级
排  名 127
经  验 7712
参赛次数 2
文章发表 61
年  龄 18
在职情况 学生
学  校 湖北生物科技职业学院
专  业

  自我简介:

TA的其他文章

解题思路:使用全排序 ,然后从小到大排序 去重就好

注意事项:

参考代码:

import java.awt.print.Book;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class 彩票 {

	/**
	 * @param args
	 */
	static String n="";
	static int[] book = new int[10];// 手牌
	static int[] a = new int[10];// 三个盒子
	static ArrayList<String> arrayList;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Scanner scanner=new Scanner(System.in);
        n=scanner.next();
        arrayList=new ArrayList<String>();
        for (int i = 0; i <n.length(); i++) {
			int sum=Integer.parseInt(""+n.charAt(i));
			book[sum]++;
		}
        dfs(1);
        Collections.sort(arrayList);
        String d="";
        for (String str : arrayList) {
        	if (str.equals(d)) {
				
			}
        	else {
        		System.out.println(str);
        		d=str;
			}
			
		}
	}

	 static void dfs(int step) {
		if (step==n.length()+1) {//结束条件
			String num="";
			for (int i = 1; i <=n.length(); i++) {
				num+=a[i];
			}
			arrayList.add(num);
			return;
		}
		for (int i = 0; i <n.length(); i++) {
			int sum=Integer.parseInt(""+n.charAt(i));
			if (book[sum] >=1) {// 判断手上是否有这张手牌
				//使用扑克牌
				a[step] = sum;//把牌放到空盒子里
				book[sum]--;//标记手上没有这张牌
				dfs(step + 1);//调用之前的方法
				book[sum]++;//结束后牌拿出
			}
		}
		return;
	}
}


 

0.0分

2 人评分

  评论区

  • «
  • »