1 package com.zl.jvm;
2
3 import java.util.ArrayList;
4
5 public class TestSet {
6
7
8 public static void main(String[] args) {
9
10 //ArrayList<String> s2 = new ArrayList<>();
11
12 char[] a = { '0', '1', '2', '3', '4','5','6','7','8','9' };
13 //先插入1位不重复的排出0
14 ArrayList<String> first = new ArrayList<>();
15 first.add("1");
16 first.add("2");
17 first.add("3");
18 first.add("4");
19 first.add("5");
20 first.add("6");
21 first.add("7");
22 first.add("8");
23 first.add("9");
24
25 /* for (int i = 0; i < a.length; i++) {
26 char temp1 = a[i];
27
28 if ('0' == temp1) {
29 continue;
30 }
31 for (int j = 0; j < a.length; j++) {
32 char temp2 = a[j];
33
34 if (temp1 == temp2) {
35 continue;
36 }
37
38 s2.add("" + temp1 + temp2);
39
40 }
41 }*/
42
43 //计算出0-9组成2位长度 每一位不重复自然数 例:12 13
44 //11这种 算重复
45 ArrayList<String> s = wei(first,a,2);
46 System.out.println(s.size());
47
48 }
49
50 public static ArrayList<String> wei(ArrayList<String>s,char[] a,int count) {
51
52 ArrayList<String> s3 = new ArrayList<>();
53
54 if(count>1) {
55 count-=1;
56 for (int i = 0; i < s.size(); i++) {
57 StringBuilder sb = new StringBuilder();
58 String temp = s.get(i);
59 sb.append(temp);
60 char[] chars2 = temp.toCharArray();
61 for (int j = 0; j < a.length; j++) {
62 if(check(chars2,a[j])) {
63 s3.add(sb.toString() + a[j]);
64 }
65
66 }
67
68 }
69 return wei(s3,a,count);
70 }
71 return s;
72 }
73
74
75 //判断是否每一位和要组合的数字是否重复
76 private static boolean check( char[] ch,char temp) {
77 for (int z = 0; z < ch.length; z++) {
78 if (ch[z] == temp) {
79 return false;
80 }
81 }
82 return true;
83 }
84 }