-1
輸入:[第一關口, 第二欄, 第三山口]製備與算術運算器的java數組列表的所有組合而不重複組合
輸出:第一欄,第二欄,第三欄,第一欄+第二欄,第一列+第三列,第二列+第三列以及三列等。
注意:我不希望有相同的組合,如:第一列+第二列和第二列第一列兩者都是相同的。 爲三列,如:a + b + c和b + c + a都相同。我不想那個重複的列。請幫幫我。
我試着用下面的代碼,但它也給了我一個重複的組合。
//準備組合..
public static void perm2(ArrayList<String> a) throws IOException {
ArrayList<String> sub = new ArrayList<String>();
perm2(sub, a);
}
static String inputFileLocation = "";
public static void perm2(ArrayList<String> sub, ArrayList<String> a)
throws IOException {
int L = a.size();
int g = 0;
String result = "";
String newLine = System.getProperty("line.separator");
if (L != 0) {
for (int i = 0; i < L; i++) {
ArrayList<String> ab = new ArrayList<String>(sub);
ab.add(a.get(i));
ArrayList<String> bc = new ArrayList<String>(a);
bc.remove(i);
perm2(ab, bc);
/* ArrayList to Array Conversion */
String array[] = new String[ab.size()];
for (int j = 0; j < ab.size(); j++) {
array[j] = ab.get(j);
System.out.println("Array: "+ array[j]);
}
for (int k = 0; k < array.length; k++) {
if (k == 0) {
result = array[k];
} else {
result = "+" + array[k];
}
System.out.print(result);
for (g = array.length; g > 0; g--) {
if (array.length == g) {
inputFileLocation = "C:\\project\\"
+ g + "ColumnData.txt";
writeToFile(result, inputFileLocation);
}
}
}
writeToFile(newLine, inputFileLocation);
System.out.println();
}
}
}
請加你已經嘗試過的代碼,您遇到任何異常/錯誤。不要指望我們按需發佈全面解決方案,因爲SO不是免費的代碼編寫服務。 – user2004685
你需要密碼嗎?如果是這樣,你是在錯誤的地方。 –
編輯你的問題,並把所有的細節,包括代碼和錯誤堆棧在其中。 – user2004685