有十个字符拼成的字符串,每个字符可能出现的字符,是a-z,怎么算出可能出现的排列组合

解决方案 »

  1.   

    用递归
        /**
         * @param num how many characters in one result
         * @param array range of the alphabets
         * @return all sequences
         */
        public static String[] getAllSequence(int num, String[] array) {
            if (num == 1) {
                return array;
            }
            else {
                String[] currentArray = getAllSequence(num - 1, array);
                String[] newArray = new String[array.length * currentArray.length];
                for (int i = 0; i < array.length; i++) {
                    for (int j = 0; j < currentArray.length; j++) {
                        newArray[i * currentArray.length + j] = array[i] + currentArray[j];
                    }
                }
                return newArray;
            }
        }
      

  2.   

    getAllSequence(10, array) 我调用了下,直接死机了大家都和我一样吗?我2G内存