美文网首页
输出字符串的全排列

输出字符串的全排列

作者: 小码弟 | 来源:发表于2018-10-08 19:10 被阅读0次

输出字符串的所有组合

这题适合使用递归,固定一个字符,求余下子字符串的全排列
以'abc'为例:
1、 固定第一个字符'a',对余下子串'bc'求全排列
2、将'a'与第二个字符'b'交换,然后固定此时的第一个字符'b',对余下子串'ac'求全排列
3、由于2步打乱了源字符串的顺序,先交换'a'<--> 'b',再把'a'与第三个字符'c'交换后,固定这时的第一个字符'c', 求余下子串'ba'的全排列


未命名文件.png
/*
  @参数:
  Str: 待排序的字符串
  SubStr:待排序的余下子串
*/
void Permutation(char* Str, char* SubStr)
{
  if(Str == NULL || SubStr == NULL)
    return;
  if(*SubStr == '\0')
  // 一次排列完成,输出结果
  print("%s", Str)
  else{
  for(char* p=SubStr; *p != '\0'; p++)
  {
    // 交换SubStr和当前遍历到的p
    swap(SubStr, p);
    // 固定第一个字符,对余下子串求全排列
    Permutation(Str, SubStr+1);
    // 还原
    swap(SubStr, p);
  }
}
}

//调用
str='abc';
Permutation(str, str);

相关文章

  • 字符串全排列

    题目:输入字符串,输出该字符串的全排列。样例:输入"abc",输出"abc,acb,bac,bca,cba,cab...

  • JavaScript - 字符串全排列

    给定字符串'abc',输出该字符串的全排列。['abc','acb','bac','bca','cba','cab...

  • 字符串的全排列

    字符串的全排列 题目描述: 输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则输出由字符a...

  • 输出字符串的全排列

    输出字符串的所有组合 这题适合使用递归,固定一个字符,求余下子字符串的全排列以'abc'为例:1、 固定第一个字符...

  • 子集、全排列、第k个排列

    子集输出 全排列输出 存在重复数字的全排列 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大...

  • 【算法】排列问题

    一、问题 描述 给定一个字符串,求它的全排列。 示例输入 abc 示例输出 abcacbbacbcacbacab ...

  • 字符串全排列

    题目描述 对给定的n位字符串全排列 解题思路 n位的字符串的全排列,先确定第0位,然后对后面n-1位进行全排列,在...

  • 关于数组的一些操作【python】

    递归的应用:求输入字符串的全排列 求输入字符串的全排列递归完成,也可以直接使用库函数 结果展示: ————————...

  • 输出全排列 (20 分)

    输出全排列 (20 分) 请编写程序输出前n个正整数的全排列(3<=n<=7),按字典序输出。 输入格式:一行输入...

  • 输出数组的全排列

    思想: n 个元素数组全排列 = 第 1 个前缀 + 后 n - 1 个元素全排列 输出第 k 个元素之后的全排列...

网友评论

      本文标题:输出字符串的全排列

      本文链接:https://www.haomeiwen.com/subject/wyijaftx.html