0
我被要求編寫一個程序來查找使用ArrayList的字符串及其子字符串的排列組合。我想出了一個解決方案,但它沒有顯示所需的輸出。所以,如果有人能夠對我進行一點啓發,我將不勝感激。在Java中使用ArrayList的字符串及其子字符串的排列
的問題如下:
要計算一個字符串的所有排列和它的子串。例如,給定一個字符串S,例如「abc」,它應該輸出字符串列表/數組, cab,cba]。你的代碼應該把S作爲輸入,併爲排列列表產生retlist。除了可以運行的代碼之外,請優化代碼以提高速度和內存的效率(我們將測試大型字符串,並且速度越快越好)。
正如在問題所述,重排列 「ABC」 的字符串的情況下,它應該打印如下結果:
[A,B,C,AB,BA,AC,CA, BC,CB,ABC,ACB,BAC,BCA,CAB,CBA]
我想出迄今:
import java.util.ArrayList;
import java.util.List;
public class Permutation {
public static void main(String[] args) {
enumerateSubString("abc");
}
public static List<String> enumerateSubString(String S_input) {
ArrayList<String> retlist = new ArrayList<String>();
int n = S_input.length();
if (n == 1) {
retlist.add(S_input);
} else {
for (int i = 0; i < n; i++) {
retlist.addAll(enumerateSubString(S_input.substring(0, i) + S_input.substring(i + 1, n)));
}
}
System.out.print(retlist);
return retlist;
}
}
的,我是越來越現在與T結果他以上代碼:
[c] [b] [c,b] [c] [a] [c,a] [b] [a,b,c] A,b,A]
感謝
產生'ArrayList'的順序是否重要? –
是的......輸出應該與預期結果完全一致。 –
噢,好的。我可以編寫一個給出所有排列順序的代碼片段,但順序不會像你提到的那樣相同。 –