我是靠谱客的博主 可爱大树,最近开发中收集的这篇文章主要介绍字符串的排列 — C++实现题目描述解题思路代码实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

输入描述:

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

牛客网题目链接

解题思路

需要两步即可解决问题:

  • 把第一个字符和后面所有的字符交换
  • 固定第一个字符,求后面字符的排列

代码实现

using namespace std;
class Solution {
public:
    vector<string> Permutation(string str) {
        vector <string> res;
        if(!str.size())return res;
        else{
            char arr[str.size()];
            for(int i=0;i<str.size();i++)arr[i]=str[i];
            arr[str.size()]='';
            Permutation(arr,0,res);
        }
        return res;
    }
    void Permutation(string str,int s,vector <string> &res){
        if(s==str.size())res.push_back(str);
        for(int i=s;i<str.size();i++){
            if(str[s]==str[i]&&s!=i)continue;
            char tmp;
            tmp=str[i],str[i]=str[s],str[s]=tmp;
            Permutation(str,s+1,res);
        }
    }
};
运行时间:3ms

占用内存:492k

最后

以上就是可爱大树为你收集整理的字符串的排列 — C++实现题目描述解题思路代码实现的全部内容,希望文章能够帮你解决字符串的排列 — C++实现题目描述解题思路代码实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部