`
steven-zhou
  • 浏览: 207593 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

打印字符串中所有字符的全排列

阅读更多
给定一字符串为:"ABC"
要能打印出:
ABC
ACB
BAC
BCA
CAB
CBA


#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

static void arrange(char *s, int start, int end);

int main(int argc, char **argv)
{
    if (argc != 2) {
        printf("usage: ./allrange <string>\n");
        exit(EXIT_FAILURE);
    }

    arrange(argv[1], 0, strlen(argv[1]));

    exit(EXIT_SUCCESS);
}

static void arrange(char *s, int start, int end)
{
    int     i;
    char    tmp;

    if (start == end) {
        printf("%s\n", s);
    } else {
        for (i = start; i < end; i++) {
            tmp = s[start]; s[start] = s[i]; s[i] = tmp;
            arrange(s, start + 1, end);
            tmp = s[start]; s[start] = s[i]; s[i] = tmp;
        }
    }
}

分享到:
评论

相关推荐

    带油重复字符串全排列递归解法

    常见得全排列有三种解决方案,for循环穷举,stl摸板函数next_permutation,还有DFS深度优先搜索,当我们遇到带有重复的字符串时应该考虑除去重复的部分。

    求字符串的全排列

    可以打印出字符串的全排列,代码是C语音风格的,刚学习编程时写的代码

    使用C语言解决字符串全排列问题

    输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba 思路 这是典型的递归求解问题,递归算法有四个特性: 必须有可...

    PHP实现字符串的全排列详解

    输入一个字符串,按字典序打印出该字符串中字符的所有排列。 例如,输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路: 1.利用递归形成递归树,达到深度优先,固定首字母的...

    输出n个字符的全排列(没有重复字符)

    简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。

    C语言重复数全排列的代码

    生成这些字符的不重复的全排列,并将结果打印到标准输出上。 【输入形式】 从标准输入上读入一个由字母、数字组成的字符串,字符串的长度小于100,其中包含重复的字符。 【输出形式】 向标准输出印...

    剑指Offer – 面试题38. 字符串的排列(全排列,排序,回溯+剪枝)

    输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例: 输入:s = "abc" 输出:["abc","acb","bac","bca","cab","cba"] 限制: 1 &lt;= s 的长度 &...

    LeetCode解题总结

    13.3 字符串的所有子回文字符串 13.4 最长公共子序列问题 13.5 字符串的编辑距离 13.6 不同路径之和 13.6.1 无障碍13.6.2 有障碍 13.7 最大矩形面积 13.8 字符串交叉组合 13.9 旋转字符串 13.10 最小路径和 13.11 ...

    C#编程经验技巧宝典

    85 &lt;br&gt;0131 巧截字符串的数字 86 &lt;br&gt;0132 如何存储变长字符串 86 &lt;br&gt;0133 在进行字符串比较时忽略大小写 87 &lt;br&gt;0134 如何去除字符串尾空格 87 &lt;br&gt;0135 如何去掉字符串中所有空格 ...

    24游戏功能完备版

    序言:关于扑克牌的表示 由于扑克牌中有一张牌是10 两位 字符串表示起来有些麻烦 当我们检测到用户输入10的时候 a[i] &quot;1&quot; a[i+1] &quot;0&quot; 我们用字母S代替10 同时产生扑克牌的时候 注意如果产生...

    Python自定义sorted排序实现方法详解

    直观想法就是求出这个数组中所有数字的全排列,然后拼接起来,再比较大小即可,当然复杂度过高。 另一个想法,我们可以定义一个排序规则,如下:   如果两个数m,n能拼接成数字mn,nm,如果mn&gt;nm,则m应该在n前面...

    《妙趣横生的算法(C语言实现)》(杨峰 编著)

    4.19 递归反向输出字符串 4.20 一年中的第几天 第5章 数学趣题(一) 5.1 舍罕王的失算 5.2 求两个数的最大公约数和最小公倍数 5.3 歌德巴赫猜想的近似证明 5.4 三色球问题 5.5 百钱买百鸡问题 5.6 判断回文数字 ...

Global site tag (gtag.js) - Google Analytics