本人想法:递归肯定的。当n = 1时, 找出所有单个字母组成的字符串,存为cArr[n];当n = m 时,可以将cArr[n]遍历插入当n = m - 1 时的字符串数组的每一个元素后,即得。比如 n = 2时, 可以将 a, b, c分别插入n = 1时的字符串数组元素(且该元素不包括带插入的元素)"a", "b", "c"后,得 "ba" "ca" "ab" "cb" "ac""bc"
同理可得 n = 3时的字符串数组。 程序如下:
public class Test6 {
public static void main(String[] args)
{
ArrayList<StringBuilder> strDes = new ArrayList<StringBuilder>();
String strSource = "abc";
int length = 3;
new Test6().printAll(strSource, length);
}
public ArrayList<StringBuilder> printAll(String strSource, int length)
{
char[] cArr = strSource.toCharArray();
int lengthSource = strSource.length();
ArrayList<StringBuilder> strTemp = new ArrayList<StringBuilder>();
ArrayList<StringBuilder> strDes = new ArrayList<StringBuilder>();