这个题的思路很简单,求排列组合,我们可以将问题分解成小的问题。比如,我们把一个字符串堪称由两部分组成:第一部分是它的第一个字符;第二部分是后面的所有字符。我们求整个字符串的排列,可以看成两步:第一步求所有可能出现在第一个位置的字符,即把所有第一个字符和后面的所有字符交换;第二步固定第一个字符,求后面所有字符的排列。求后面所有字符的排列的时候,我们仍把后面的所有字符分成两部分:后面字符中的第一个字符,以及这个字符之后的所有字符。这个思路就是典型的递归思路。这个算法的时间复杂度是O(N!),空间复杂度是O(N^2)。
PREVIOUSlc297.二叉树的序列化与反序列化
NEXTjz040.最小的k个数