解题思路:使用全排序 ,然后从小到大排序 去重就好
注意事项:
参考代码:
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 人评分
DNA (C++代码)浏览:651 |
C语言训练-斐波纳契数列 (C语言代码)浏览:791 |
C语言训练-求PI* (C语言代码)浏览:897 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:609 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:585 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1318 |
字符串比较 (C语言代码)答案错误????浏览:597 |
【排队买票】 (C语言代码)浏览:900 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:633 |
WU-格式化数据输出 (C语言代码)浏览:1755 |