设计一个程序,当输入一个字符串时,要求输出这个字符串的所有排列。例如,输入字符串abc,要求输出由字符a、b、c所能排列出来的所有字符串:abc、acb、bac、bca、cba、cab。
递归法下面以字符串abc为例介绍对字符串进行全排列的方法。具体步骤如下。
1)首先固定第一个字符a,然后对后面的两个字符b与c进行全排列。
2)交换第一个字符与其后面的字符,即交换a与b,然后固定第一个字符b,接着对后面的两个字符a与c进行全排列。
3)由于第2)步交换了a和b破坏了字符串原来的顺序,因此,需要再次交换a和b使其恢复到原来的顺序,然后交换第一个字符与第三个字符(交换a和c),接着固定第一个字符c,对后面的两个字符a与b求全排列。在对字符串求全排列的时候就可以采用递归的方式来求解。
1,把目标字符串内容提取出来赋予给一个列表。
2,从列表0位置元素开始循环与非0位置元素组合。
3,依次类推循环每个位置元素进行组合。
4,把组合出来的字符打印出来。
递归法下面以字符串abc为例介绍对字符串进行全排列的方法。具体步骤如下。
1)首先固定第一个字符a,然后对后面的两个字符b与c进行全排列。
2)交换第一个字符与其后面的字符,即交换a与b,然后固定第一个字符b,接着对后面的两个字符a与c进行全排列。
3)由于第2)步交换了a和b破坏了字符串原来的顺序,因此,需要再次交换a和b使其恢复到原来的顺序,然后交换第一个字符与第三个字符(交换a和c),接着固定第一个字符c,对后面的两个字符a与b求全排列。在对字符串求全排列的时候就可以采用递归的方式来求解。
1,把目标字符串内容提取出来赋予给一个列表。
2,从列表0位置元素开始循环与非0位置元素组合。
3,依次类推循环每个位置元素进行组合。
4,把组合出来的字符打印出来。