62,614
社区成员
发帖
与我相关
我的任务
分享
public void list2(String usedIndex, String result) {
for (int idx = 0; idx < arr.length; idx++) {
if (usedIndex.indexOf(idx + 48) > -1) continue;
result = result + String.valueOf(arr[idx]);
if (result.length() == arr.length) {
if (isValid(result)) {
System.out.println(result);
lastResult = result;
cnt++;
}
break;
}
String newUsedIndex = usedIndex + String.valueOf(idx);
list2(newUsedIndex, result);
}
}
public void list(String usedIndex, String result) {
for (int idx = 0; idx < arr.length; idx++) {
if (usedIndex.indexOf(idx + 48) > -1) continue;
String str = result + String.valueOf(arr[idx]);
if (str.length() == arr.length) {
if (isValid(str)) {
System.out.println(str);
lastResult = str;
cnt++;
}
break;
}
String newUsedIndex = usedIndex + String.valueOf(idx);
list(newUsedIndex, str);
}
}
package align;
public class Test2 {
private String lastResult = "";
public int cnt;
private int arr[];
public Test2(int[] arr) {
this.arr = arr;
}
private boolean isValid(String s) {
if (s.compareTo(lastResult) <= 0)
return false;
if (s.indexOf("4") == 2)
return false;
if (s.indexOf("35") >= 0 || s.indexOf("53") >= 0)
return false;
return true;
}
public void list(String usedIndex, String result) {
for (int idx = 0; idx < arr.length; idx++) {
if (usedIndex.indexOf(idx + 48) > -1) continue;
String str = result + String.valueOf(arr[idx]);
if (str.length() == arr.length) {
if (isValid(str)) {
System.out.println(str);
lastResult = str;
cnt++;
}
break;
}
String newUsedIndex = usedIndex + String.valueOf(idx);
list(newUsedIndex, str);
}
}
public void list2(String usedIndex, String result) {
for (int idx = 0; idx < arr.length; idx++) {
if (usedIndex.indexOf(idx + 48) > -1) continue;
result = result + String.valueOf(arr[idx]);
if (result.length() == arr.length) {
if (isValid(result)) {
System.out.println(result);
lastResult = result;
cnt++;
}
break;
}
String newUsedIndex = usedIndex + String.valueOf(idx);
list2(newUsedIndex, result);
}
}
public static void main(String[] args) {
int[] arr =
{1, 2, 3, 3, 4, 5};
// {1, 2};
Test2 test2 = new Test2(arr);
test2.list2("", "");
System.out.println("count: " + test2.cnt);
}
}