题解 | 全排列

#include <bits/stdc++.h>
using namespace std;

void fullsort(string pre,string s){
    if(s.size()==1){
        cout<<pre+s<<endl;
        return;
    }
    for(int i=0;i<s.size();i++){
        string nextPre=pre+s[i];
        string x=s;
        x.erase(i,1);
        fullsort(nextPre, x);
    }
}

int main(){
    string s;
    while(cin>>s){
        fullsort("", s);
    }
}

递归的思想就是调用了作用相同的函数,我们的核心是找到这个函数做了什么操作,对于求全排列的问题,那么对于前面的全排列,就是前面的已排状态与后面所有的全排列的组合,对于这个过程,每个头部字段,在每次进行的时候都会增加一个内容,然后对剩下的进行同样的操作,最后直到长度为1,得出唯一情况,结束。

全部评论

相关推荐

就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司8个岗位 >
点赞 评论 收藏
分享
06-11 13:34
门头沟学院 C++
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务