面试题:字符串的排列题目:输入一个字串符串,打印

23 查阅
面试题:字符串的排列题目:输入一个字串符串,打印出该字符串中字符的所有排序。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、bac、bca、cab和cba。

参考答案:

正确答案:

如何求出几个字符的所有排列,很多人都不能一下子想出解决方案。那我们是不是可以考虑把这个复杂的问题分解成小的问题呢?比如,我们把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。在图4.14中,我们用两种不同的背景颜色区分字符串的两部分。
我们求整个字符串的排列,可以看成两步:首先求所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符交换。图4.14就是分别把第一个字符a和后面的b、c等字符交换的情形。首先固定第一个字符(如图4.14 (

字符串