37-字符的全排列

题目内容:

对字符串(数字,字母,符号)进行全排列,并统计全排列的种树

输入描述

输入一个字符串


输出描述

输出字符串的全排列,每种情况占一行,最后一行输出全排列的个数


输入样例

123


输出样例

123
132
213
231
312
321
6

 

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
string str;
int coun;
string s[100];int mySwap(int i, int j){char temp;temp = str[i];str[i] = str[j];str[j] = temp;
}int isswap(int i, int j){for(int k = i; k < j; k++){if(str[k] == str[j])return 0;}return 1;
} int allpai(int i, int n){int j;if(i == n - 1){
//		cout << str << endl;s[coun++] = str;}else{for(int j = i; j < n; j++){if(isswap(i, j)){mySwap(i, j);     //for循环每一次交换第一个与后面的每一个的位置 //			cout << "test1 : i j " << i << " " << j << " str " << str << endl;allpai(i + 1, n); //从i = 0开始即确定了第一个位置,重复上面for循环动作,依次确定第二个位置 mySwap(j, i);     //对到初始状态,为下个for循环做准备 //			cout << "test1 : i j " << i << " " << j << " str " << str << endl;}}}
}bool cmp(string a, string b){return a < b;
}int main(){cin >> str;allpai(0, str.length());
//	cout << "sort" << endl;sort(s, s + coun, cmp);	for(int i = 0; i < coun; i++)cout << s[i] << endl;cout << coun;return 0;
}

 

转载于:https://www.cnblogs.com/zhumengdexiaobai/p/7735058.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Quanta杂志长文翻译:通过信息论判定个体的边界

本文是“Quanta magazine”文章“What Is an Individual? Biology Seeks Clues in Information Theory” 的全文翻译。译者Peter&#xff0c;原文地址 https://www.quantamagazine.org/what-is-an-individual-biology-seeks-clues-in-information-theory-20200716/导读&#x…

linux语言 翻译工具,Linux文本转语音工具eSpeak介绍

Text to speech tool in LinuxeSpeak是一款 Linux 命令行工具&#xff0c;能把文本转换成语音。它是一款简洁的语音合成器&#xff0c;用C语言编写而成&#xff0c;它支持英语和其它多种语言。eSpeak 从标准输入或者输入文件中读取文本。虽然语音输出与真人声音相去甚远。但是&…

python--*args和**kwargs可变参数

先来看个例子&#xff1a; #! /usr/bin/env python #codingutf-8def foo(*args, **kwargs):print(args,args)print(kwargs,kwargs)print(----------------------------)if __name__ __main__:foo(1,2,3,4)foo(a1,b2,c3)foo(1,2,3,4,a1,b2,c3)foo(a,1,None,a1,b2,c3) 结果&…

因果学习的三个层次

来源&#xff1a;混沌巡洋舰昨天龚鹤扬博士在集智的讲座因果学习综述&#xff0c;我借此机会结合我的理解给大家总结客串下这个讲座&#xff0c;和因果学习的核心内容&#xff0c;及巡洋舰一段时间关于因果的文章汇总。这个讲座分为三部分&#xff0c;第一是什么因果及其哲学基…

查看文件详细信息linux,linux命令stat,查看文件详细信息

搜索引擎广告过滤Chrome插件搜索广告屏蔽Chrome插件:自动过滤:百度,360,搜狗,google,bing的搜索广告,让魏则西的悲剧不再重演.珍爱生命,远离搜索广告! 下载:FuckAd.zip 安装:方法自行百度. 关闭百 ...如何解读SQL Server日志&lpar;2&sol;3&rpar;接下来说说返回的Ro…

BZOJ1010玩具装箱 - 斜率优化dp

传送门 题目分析&#xff1a; 设\(f[i]\)表示装前i个玩具的花费。 列出转移方程&#xff1a;\[f[i] max\{f[j] ((i - (j 1)) sum[i] - sum[j] - L))^2\}\] 令\(x[i] sum[i] i\), \(P L 1\)&#xff0c;上式化为&#xff1a;\[f[i] max\{f[j] (x[i] - x[j] - P)^2\}\]…

人与机器——解析人工智能的三大类别以及哲学家的相关思想实验

来源&#xff1a;北京物联网智能技术应用协会你是否曾经产生过怀疑&#xff0c;你身边的某个人可能是个机器人呢&#xff1f;毕竟现在由于技术的发展&#xff0c;机器人的外观、行为都有可能被设置得和人类十分相像。这似乎有些荒谬和匪夷所思&#xff0c;但是你如何能百分之百…

linux暂停线程和恢复,是否有可能在Linux [暂停]中检测到线程已进行上下文切换?...

能够当所述线程中的一个被切换上下文(即&#xff0c;暂停)&#xff0c;以检测可以找到&#xff1f;至于你的问题是否可能 - 它认为这是可能的。至少SystemTap(https://sourceware.org/systemtap/)可以做到这一点。probe scheduler.ctxswitch{if (target_pid ! 0&& next…

大战设计模式【12】—— 迭代器模式

迭代器模式&#xff08;Iterator&#xff09; 设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample 一、定义 提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不暴露其内部的表示。 二、结构 Iterator&#xff08;抽象迭代器&#xff0…

MIT最新报告:完全无人驾驶仍需10年,马斯克:特斯拉已经实现

来源&#xff1a;机器学习研究组订阅号两年前&#xff0c;麻省理工学院成立了「未来工作特别小组」&#xff0c;这个小组目前有20多人&#xff0c;旨在研究「大众创新年代」的工作演变。近期&#xff0c;他们发表了一个最新的报告&#xff0c;重点关注了自动驾驶领域的进展。而…

win7 linux双系统win7启动不了怎么办,双系统windows打不开怎么办|苹果双系统win7打不开怎么解决|mac双系统打不开解决方法-系统城...

2016-03-30 19:28:38  浏览量&#xff1a;22401很多用户都会在电脑上安装Windows双系统甚至多系统&#xff0c;在开机的时候就会出现一个启动菜单让用户选择&#xff0c;如果没有选择将会自动启动默认的系统&#xff0c;那么双系统要怎么修改默认的启动项呢&#xff1f;今天系…

css 外边距合并

1. 当一个元素出现在另一个元素上面时&#xff0c;第一个元素的下外边距会和第二个元素的上边距合并(取较大值) 2. 当一个元素包含另一个元素中时(没有内边距或边框把外边距分隔开)&#xff0c;会发生合并; 2.1条件父元素无边框 2.2 父元素和子元素外边距之间无其他分格元素 3.…

是时候抛弃旧的摩尔定律了

来源&#xff1a;IEEE转自&#xff1a;悦智网在技术领域最著名的准则之一就是摩尔定律。在过去55年的时间里&#xff0c;“摩尔定律”已经描述并预测了晶体管的缩小&#xff0c;如一组称为技术节点的数字在过去以大约每两年一次的频率更新。像一些基于物理学的世界末日时钟一样…

网络对抗技术—-网络对抗实验四

学 号&#xff1a;201421430008 中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告 实验四 恶意代码技术 学生姓名 吴宙杨 年级 2014 区队 3 指导教师 高见老师 信息技术与网络安全学院 2016年11月7日 实验任务总纲 2016—20…

linux int64_t 头文件,这对int64_t的处理是GCC和Clang的错误吗?

你不需要去POSIX对它进行排序,ISO C控制这个特定的方面(下面的参考是C11标准).这个答案的其余部分将成为所有“语言律师”,以显示为什么将未添加的行为添加到已签名的值中,以及为什么两个答案(真和假)都有效.首先,您在ISO中未定义int64_t的争论并不十分正确.第7.20.1.1节精确宽…

北大副校长詹启敏回应“25篇论文造假”,​PubPpeer到底靠不靠谱?

来源&#xff1a;科研大匠今日&#xff0c;北京大学常务副校长、北大医学部主任、中国工程院院士詹启敏在个人公众号“潇敏 ScienceArt”上发布《詹启敏关于相关情况的说明》文章&#xff0c;回应了昨日 DeepTech 对北京大学常务副校长詹启敏 25 篇相关论文受到学术不端质疑。事…

c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序

C语言课程设计报告模拟时钟转动程序 课程设计报告题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 导 教 师 金陵科技学院教务处制 程序设计综合课程设计I目 录第一章 课程设计的目的和要求 1.1 C 语言…

用人工智能监督人工 遭遇非技术困局

来源&#xff1a;科技日报远程办公常态化催生云监工软件市场。近日一款名为Enaible的AI监工软件销售火爆&#xff0c;这种AI软件不仅可以盯着员工干活&#xff0c;还可以对员工的工作效率进行打分……一场新冠肺炎疫情&#xff0c;让远程办公逐渐成为常态。钉钉、飞书、企业微信…

Windows10 【系统周期表】【系统下载表】【大型软件表】

系统周期表 商用名称商用英文名代号版本系统版本上市日期服务周期备注Windows 10无Threshold 1150710.0.10240.174432015.07.292015.07.29 - 2015.11.12默认值Windows 10十一月更新Windows 10 November UpdateThreshold 2151110.0.10586.9622015.11.122015.11.12 - 2016.08.02W…

c语言实现图像拼接程序,opencv2实现10张图像上下左右拼接融合分享!

本文实例为大家分享了opencv2实现多张图像上下左右拼接融合的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下在前面的“opencv2两张图像拼接融合_基于SURF特征提取”博文中&#xff0c;实现了两张左右图像的拼接融合&#xff0c;后来我也实现了多张图像的拼接融合。但…