【牛客网】KY43 全排列
这道题需要用到递归的思想,可以将字符串分为两部分,一部分为已经排列好的,另一部分为待排列的,然后对待排列的部分依次遍历选择一个字符放到已经排列好的部分中,依次递归直至所有字符都已排列好为止:
// #include <bits/stdc++.h>
// using namespace std;
// int main(){// for(string s;cin>>s;cout<<endl){// sort(s.begin(),s.end());
// for(cout<<s<<endl;next_permutation(s.begin(),s.end());cout<<s<<endl);
// }
// return 0;
// }#include<iostream>
#include<string>
#include<algorithm>using namespace std;void func(string s, int n){if(n == 1) cout<<s<<endl;else{int len = s.size();for(int i = 0;i < n;i++){string temp(s);char ch = temp[len - n + i]; //从待排列的部分中依次选择一个字符temp.erase(len - n + i, 1); //将该字符从原来的位置移动到新的位置上temp.insert(len - n, 1, ch);func(temp, n - 1);}}
}int main(){string s;while(cin>>s){sort(s.begin(), s.end()); //将字符串按照字典序进行排列func(s, s.size());cout<<endl;}return 0;
}
【牛客网】KY43 全排列相关推荐
- 牛客网平台常州大学新生寒假训练会试
A-添加逗号 链接:https://www.nowcoder.net/acm/contest/78/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其 ...
- 【牛客网】:数据结构——时间复杂度,算法复杂度
目录 一.时间复杂度 二.算法复杂度 一.时间复杂度 先看一张图: (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道.但我们不可能也没有必要对每个算法都上机 ...
- 牛客网算法工程师能力评估
牛客网算法工程师能力评估 题目来源:https://www.nowcoder.com/test/200/summary 1.递归算法x(x(8))需要调用几次函数x(int n)? class pro ...
- 牛客网暑期ACM多校训练营(第三场): C. Shuffle Cards(splay)
链接:https://www.nowcoder.com/acm/contest/141/C 来源:牛客网 题目描述 Eddy likes to play cards game since there ...
- 队列Q_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28537/L 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语 ...
- 牛客网小bai月赛40
牛客网小白月赛40 A 数字游戏 B 跳跳跳 D 优美字符串 E 分组 F 过桥 G 空调遥控 I 体操队形 牛客比赛页面跳转 这是一篇菜鸟的自我总结,大佬勿喷,轻点轻点~ A 数字游戏 题目意思: ...
- 【牛客网】C/C++牛客网专项刷题(01)
以下为牛客网C/C++专项刷题: 1.下面程序会输出什么: static int a=1; void fun1(void){ a=2; } void fun2(void){ int a=3; } vo ...
- 牛客网在线编程专题《剑指offer-面试题28》字符串的排列
我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 公众号介绍:Microstrong(小强)同学主要研究机器学习.深度学习.计算机视觉.智能对话系统相关内容,分享 ...
- 牛客网——华为题库(71~80)
华为题库 71.字符串通配符 72.百钱买百鸡问题 73.计算日期到天数转换 74.参数解析 75.公共子串计算 76.尼科彻斯定理 77.火车进站 80.整型数组合并 71.字符串通配符 #incl ...
- [C++] 牛客网:合并两个有序的数组
主要是体验一下牛客网里的核心代码模式到底是怎么弄的..还有C++这个东西平常用的太少了,试一试. 以外的还体验到了sort()函数的使用. 来源:牛客网 题目链接:合并两个有序的数组 知识点:数组.双 ...
最新文章
- Python如何实现24个微信大群万人同步转发直播?
- Android四种Activity的加载模式(转)
- USTC English Club Note20211215
- WinPcap获取网卡的更多信息
- 获取某一扩展名的文件集合
- WCF开发入门的六个步骤
- 前端学习(1913)vue之电商管理系统电商系统之创建user分支并把代码推到码云
- Netty常见面试题 与 答案
- sdut1283Five in a Row, Again
- MySQL 获取首次登录日期、登录设备号
- P1268 树的重量
- 漫画:什么是B-树?
- sql 遇到多个重复列名报错:Ambiguous column reference ***
- python 百度cpc点击
- tebsorflow2.0 卷积神经网络的实现实例
- 虚拟机安装kali linux
- Maven的学习总结
- mysql 的数据类型
- R 数字 字符 向量
- 线扫相机DALSA-Image Format(读图格式设置)