public class StringPermutation {
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) {
List<String> test = StringPermutation.getPermutation ("CAT");
System.out.println (test);
}
}
上面的代码置换了它给出的字符串。例如,给定cat
,它返回[ cat, act, atc, cta, tca, tac
],这很好,但是你们是否可以编辑我的代码,以便它也显示字母的子集,即[ cat, act, atc, cta, tca, tac] and [at, ta, tc, ca, ac, ct, c, a, t
]?
我希望你明白我在问什么。如果您不明白,请告诉我,我会进一步解释。谢谢,我很感激。