首页 > 试题广场 > 字符串的排列
[编程题]字符串的排列
  • 热度指数:759152 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

示例1

输入

"ab"

输出

["ab","ba"]
头像 牛客题霸
发表于 2020-06-01 14:59:26
精华题解 描述 这是一篇针对初学者的题解,用递归方法解决。知识点:字符串,递归,回溯难度:一星 题解 题目抽象:给定一个字符串,求该字符串的全排列。 方法:递归法 如图: 如图所示的全排列可以发现,对于这个排列,我们是固定A不动,然后交换B与C,从而得到"ABC" 和 "AC 展开全文
头像 一叶浮尘
发表于 2019-08-17 11:14:05
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 没想到按照自己的思路又攻克下了一道题目,在这道题目书写的过程中又进一步复习了java中String以及StringBuil 展开全文
头像 五头镜子
发表于 2020-01-13 22:34:16
几种全排列算法 0.字典序法参考https://blog.csdn.net/babynumber/article/details/42706757在O(n)的时间复杂度下生成当前排列的下一个排列(字典序)。详细算法去读上面的博客。简单的讲:1、从右向左找到第一个正序对(array[i] < a 展开全文
头像 青春期不醒症患者
发表于 2019-09-14 19:01:32
class Solution { public: vector<string> Permutation(string str) { if (str.empty()) return {}; sort(str.begin(), str.end()); 展开全文
头像 Jalr4ever
发表于 2019-09-01 01:51:38
题目 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入:一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 思路 先学习回溯的基本套路,这里使用回溯法解 展开全文
头像 一颗闪闪发亮的马路星
发表于 2020-02-10 15:40:28
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 首先读题我们发现,这种从固定的数组/String 里的取出元素进行排列组合,是经典的permutation题目。然后我们 展开全文
头像 啊~我好菜啊
发表于 2019-09-18 21:06:41
27. 字符串的排列 题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路递归法,问题转换为先固定第一个字符,求剩余字符的排列;求剩余字符排列时跟原问题一样。遍历 展开全文
头像 常喝水
发表于 2019-12-19 10:45:22
写这段代码的时候就是不知道在哪里写递归函数,一开始写的是res.append(head+self.Permutation(shadow)),果然递归就是一看就会一写就废 class Solution: def Permutation(self, ss): # write co 展开全文
头像 不努力就会倒数
发表于 2020-01-12 15:28:43
/** 思路:a b c 使用的递归思路 1,先确定第一个数a,剩余bc 2,再确定第二个数b,剩余c 3,判断就剩一个数了,把路径存起来 思路还挺好想,主要是怎么写代码。看下面吧,不太好讲。 */ public class Solution { public ArrayList<S 展开全文
头像 橙子爱吃桃子
发表于 2020-05-27 10:10:11
C++简单代码/set去重/剪枝/追溯法/10行: class Solution { public: set<string> res; //去重 vector<string> Permutation(string str) { if (str. 展开全文
头像 vorking
发表于 2020-03-19 15:56:56
字典序法、递归法的C++语言实现: //////////////////////////////////////// ①最牛逼的字典序法: 1、从右向左找到第一个正序对(array[i]<array[i+1],因为没有等号,去掉重复的排列 2、从i开始向右搜索,找到比arr 展开全文