IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 打印字符串(C语言,全排列) -> 正文阅读

[C++知识库]打印字符串(C语言,全排列)

题:输入一个小于26的数字n, 代表从字母a开始的一串长度为n的连续字符,如4表示abcd。 请输出这串字符的所有可能排列。

根据提示,补充一个函数int print(int n,char result[][27]),其中n是输入的字符数目,你需要生成全排列,并填写到result数组中。
如果需要,你也可以自己在编辑器中添加子函数。

例:

n=3时
result前6行包含:
abc
acb
bac
bca
cab
cba
(提示:result的行次序并不重要,只要是这6个即可)

解析:
n个值得全排列数目为n!。第一个位置的可能性是n种,那么一共是n*(n-1)!种,同理依次递推。

int next=0;
char s[27];

int pai(int start, int end, char result[][27]){
	if (start >= end) {  # 全部遍历后
		s[end]=0;
	    strcpy(result[next], s);  # 存入一种可能性
		next += 1;  # 计数器
	} else 
	 for(int i=start; i<end; i++){
	    char c;
		c=s[start];
	    s[start]=s[i];
		s[i]=c;
	//  swap(s[start], s[i])  # 交换当前位置的可能的值,第一次原地交换,因为当前值的可能性也需要存入
	
		pai(start+1,end,result);  # 进入(n-1)的全排列
		
		c=s[start];
	    s[start]=s[i];
		s[i]=c;
	//  swap(s[start], s[i]);  # 换回之前交换的值,以免位置错乱。
	 }
	 return 0;	
}

int print(int n,char result[][27]){
/*下面填写函数的代码*/
   char longstr[]="abcdefghijklmnopqrst";
   longstr[n]=0;
   strcpy(s, longstr);
   pai(0,n, result);
/********结束******/
}

这题是经典的全排列回溯法模板。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:13:22  更:2022-03-10 22:15:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:33:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码