前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7-7 输出全排列

7-7 输出全排列

作者头像
韩旭051
发布2019-11-08 10:02:49
8190
发布2019-11-08 10:02:49
举报
文章被收录于专栏:刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/96484775

暑假字符串专题HBU程序设计训练营总结

?点这里

7-7 输出全排列

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。

输入格式:

输入给出正整数n(<10)。

输出格式:

输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a​1​​,a​2​​,⋯,a​n​​排在序列b​1​​,b​2​​,⋯,b​n​​之前,如果存在k使得a​1​​=b​1​​,⋯,a​k​​=b​k​​ 并且 a​k+1​​<b​k+1​​。

输入样例:

代码语言:javascript
复制
3

输出样例:

代码语言:javascript
复制
123
132
213
231
312
321

?千算万算,算不到c++有直接的函数☞next_permutation(str.begin(),str.end())

小手一抖,这道题就过去了。。。?‍?

代码语言:javascript
复制
#include<iostream>
#include <algorithm>
using namespace std;
int main(){
    int n;
    cin>>n;
    string str="";
    for(int i=1;i<=n;i++){
        str+=i+'0';
    } 
    do{
        cout<<str<<endl;
    }while(next_permutation(str.begin(),str.end()));
    return 0;
}

当然,递归?硬写✍也是可以哒?

可悲的是我一个也写不出来?

代码语言:javascript
复制
#include <bits/stdc++.h>

using namespace std;

string s;
int n;
set<string> sls;
void qpl(string s,int x)
{
    if(x==s.length()){
        sls.insert(s);
        return;
    }
    for(int i = x; i<s.length(); ++i)
    {
        string t(s);
        swap(t[x],t[i]);
        qpl(t,x+1);
    }
}

int main()
{
    int n;
    cin >> n;
    for(int i=1; i<=n; ++i)
    {
        s+= i+'0';
    }
    for(int i = 0; i<s.length(); ++i)
    {
        string t(s);
        swap(t[0],t[i]);
        qpl(t,1);
    }
    for(auto st:sls){
        cout<<st<<endl;
    }
    return 0;
}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 暑假字符串专题HBU程序设计训练营总结
  • ?点这里
  • 7-7 输出全排列
    • 输入格式:
      • 输出格式:
        • 输入样例:
          • 输出样例:
            • ?千算万算,算不到c++有直接的函数☞next_permutation(str.begin(),str.end())
            • 小手一抖,这道题就过去了。。。?‍?
              • 当然,递归?硬写✍也是可以哒?
              • 可悲的是我一个也写不出来?
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档