2015-03-01 3 views
0

У меня есть массив строк, например:Перестановки набора строк?

{ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" } 

То, что я хочу, чтобы получить все комбинации.

Я попытался с помощью метода, который я использовал с кодировками для генерации всех перестановок:

public static void generate(String[] stringset, String pfx, int n, int k) { 
    if (k == 0) { 
     System.out.println(pfx); 
     return; 
    } 
    for (int i = 0; i < n; i++) { 
     generate(stringset, pfx + stringset[i] + ",", n, k - 1); 
    } 
} 

Однако я не смог получить рабочую выход.

Как бы это осуществить?

+0

Что именно вы подразумеваете под всеми перестановками? Как ваш ответ должен быть отформатирован? Вы можете использовать рекурсивную функцию, которая объединяет строки в вложенных циклах. – Reid

+0

Поиск "poweret" ... – assylias

ответ

0

Вот эта идея, используя ArrayList.

public static void generate(ArrayList<String> stringset, String pfx) { 
    if (stringset.size() == 0) { 
     System.out.println(pfx); 
     return; 
    } 
    int len = stringset.size(); 

    for (int i = 0; i < len ; i++) { 
     String first = stringset.remove(i); 
     generate(stringset, pfx + first + ","); 
     stringset.add(i,first); 
    } 
} 
Смежные вопросы