求字符串的全排列

Posted yancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求字符串的全排列相关的知识,希望对你有一定的参考价值。

今天给大家分享一道简单的算法题 -- 求字符串的全排列

相信很多人都会被这道题考查过,也有很多人不能写出来,放轻松,接下来我们来看下如何实现这道题。

首先我们来看下问题是什么。

给定一个字符串,求出这个字符串所有可能出现的排列组合。

如: abc

输出:

[ \'cba\', \'bca\', \'cab\', \'acb\', \'bac\', \'abc\' ]


准备好了吗? 来一起看下如何实现吧。

解答思路:

首先我们来做个假设:

  1. 当前给的字符串为 \'a\' 。那么返回的只有一个排列 [ \'a\' ]
  2. 当前给的字符串为 \'ab\' 。则返回 [ \'ab\', \'ba\' ]
  3. 当前给的字符串为 \'abc\' 。则返回 [ \'cba\', \'bca\', \'cab\', \'acb\', \'bac\', \'abc\' ]
  4. ………………

1. 一个字符的情况

乍一看好像没什么规律,不急,我们先来实现以下只有一个字符的情况

栗子:

以上是关于求字符串的全排列的主要内容,如果未能解决你的问题,请参考以下文章

面试题:字符串的全排列

求n个数的全排列,n不定。用c语言。用于银行家算法中求安全序列

回溯算法求关于排列有关问题

字符串的全排列

字符串数组的全排列——数组

全排列算法(递归)