Bintoo
BAN USERpublic class ThreeArray {
public void run(int[][] arrays) {
for (int i = 0; i < arrays.length; i++) {
Arrays.sort(arrays[i]);
}
print(arrays, 0, 0, new LinkedList<>());
}
public void print(int[][] arrays, int indexArray, int index, LinkedList<Integer> list) {
int[] array = arrays[indexArray];
if (index >= array.length) {
return;
}
for (int i = index; i < array.length; i++) {
int value = array[i];
if (list.isEmpty() || value > list.getLast()) {
list.add(value);
if (indexArray >= arrays.length - 1) {
printArray(list);
} else {
print(arrays, indexArray + 1, 0, list);
}
print(arrays, indexArray, index + 1, list);
list.removeLast();
}
}
}
private void printArray(List<Integer> list) {
int size = list.size();
System.out.print("(");
for (int i = 0; i < size; i++) {
System.out.print(list.get(i));
if (i + 1 < size) {
System.out.print(",");
}
}
System.out.println(")");
}
}
public class ThreeArrayTest {
private ThreeArray threeArray = new ThreeArray();
@Before
public void setup() {
threeArray = new ThreeArray();
}
@Test
public void test() {
threeArray.run(new int[][]{{3}, {11, 13, 16}, {45}});
}}
public class LotteryNumber {
public static void main(String[] args) {
Assert.assertTrue(lotteryNumber.valid("4938532894754"));
Assert.assertTrue(lotteryNumber.valid("1634616512"));
Assert.assertFalse(lotteryNumber.valid("1122334"));
Assert.assertFalse(lotteryNumber.valid("1122334Y"));
Assert.assertFalse(lotteryNumber.valid("ABCDEFEFY"));
}
public boolean valid(String text) {
if (isEmpty(text)) {
return false;
}
return search(new HashSet<>(), text);
}
private boolean search(HashSet<Integer> numbers, String text) {
if (numbers.size() == 7) {
return true;
}
if (text == null || text.length() == 0) {
return false;
}
int size = text.length();
for (int i = 0; i < size; i++) {
String sub1 = text.substring(0, i + 1);
String sub2 = null;
if (i + 1 < text.length()) {
sub2 = text.substring(i + 1);
}
int tmp = toInt(sub1);
if (!numbers.contains(tmp) && 1 <= tmp && tmp <= 59) {
numbers.add(tmp);
if (search(numbers, sub2)) {
return true;
}
numbers.remove(tmp);
}
}
return false;
}
private int toInt(String text) {
int num = 0;
for (char c : text.toCharArray()) {
num = (num * 10) + Character.getNumericValue(c);
}
return num;
}
private boolean isEmpty(String text) {
if (text == null || text.length() == 0) {
return true;
}
return false;
}
}
- Bintoo June 22, 2017private static int numberOf2s(int input) {
int number = input;
int count = 0;
int mult = 1;
while (number > 0) {
int lastDig = number % 10;
if (lastDig >= 2) {
count += 1;
}
if (lastDig == 0) {
lastDig = mult;
} else {
lastDig *= mult;
}
count += (lastDig / 10);
mult *= 10;
number = number / 10;
}
return count;
}
}
- Bintoo July 07, 2017