1
我想獲得像字母表的字符串排列的特定組合。要理解我,我會告訴你,我使用的代碼:我想獲得排列的特定組合?
public class PermutationExample {
public static List<String> getPermutation(String input) {
List<String> collection = null;
if (input.length() == 1) {
collection = new ArrayList<String>();
collection.add(input);
return collection;
} else {
collection = getPermutation(input.substring(1));
Character first = input.charAt(0);
List<String> result = new ArrayList<String>();
for (String str : collection) {
for (int i = 0; i < str.length(); i++) {
String item = str.substring(0, i) + first
+ str.substring(i);
result.add(item);
}
String item = str.concat(first.toString());
result.add(item);
}
return result;
}
}
public static void main(String[] args) {
System.out.println(PermutationExample.getPermutation("ABCD"));
}
}
此代碼工作得很好,我可以得到每一個組合,我可以把它從列表中,如果我需要5個元素,我可以接收它。但是,如果字符串是字母表...,沒有用,它太大了。我必須做的,從所有26中獲得像1221這樣的特定元素!組合?
是的,我需要第N個字符串的排列,但我不知道如何解決這個問題:/ – Aleksiev 2012-03-15 01:53:41