美文网首页面试算法
牛客-剑指0ffer-字符串的排列

牛客-剑指0ffer-字符串的排列

作者: wenyilab | 来源:发表于2019-08-03 08:21 被阅读25次

题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

class Solution {
public:
    vector<string> Permutation(string str) {
        vector<string> array;
        if(str.size() == 0){
            return array;
        }
        Permutation(array,str,0);
        sort(array.begin(),array.end());
        return array;
    }
    void Permutation(vector<string> &array,string str,int begin){
        if (begin == str.size()-1)
            array.push_back(str);
        for (int i = begin; i <= str.size()-1;i++){
            if (i != begin && str[i] == str[begin])
                continue;
            swap(str[i],str[begin]);
            Permutation(array,str,begin+1);
            swap(str[i],str[begin]);
        }
    }
};

相关文章

  • 牛客-剑指0ffer-字符串的排列

    题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能...

  • 全排列 n皇后

    输入一个字符串打印出这个字符串的全排列,剑指上面是字符串没有重复字母的,牛客上面输入有重复字母,要求搞掉重复的排列...

  • 牛客-剑指0ffer-左旋转字符串

    题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对...

  • 牛客-剑指0ffer-丑数

    题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含...

  • 牛客-剑指0ffer-反转链表

    题目描述输入一个链表,反转链表后,输出新链表的表头。

  • 牛客-剑指0ffer-矩形覆盖

    题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,...

  • 牛客-剑指0ffer-跳台阶

    题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不...

  • 牛客-剑指0ffer-替换空格

    题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过...

  • 牛客-剑指0ffer-表示数值的字符串

    题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-12...

  • 牛客-剑指0ffer-变态跳台阶

    题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳...

网友评论

    本文标题:牛客-剑指0ffer-字符串的排列

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