博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串的排列
阅读量:6118 次
发布时间:2019-06-21

本文共 528 字,大约阅读时间需要 1 分钟。

要求:输入一个字符串,打印出该字符串中的字符的所有排列。如:输入字符串abc,则打印出abc,acb,bac,bca,cab,cba.

思路:我们可以把一个字符串看成是两部分组成:第一部分为它的第一个字符,第二部分为余下的全部字符。求整个字符串的全排列我们可以看作是:首先求所有可能出现在第一个位置的字符,即把第一个字符和余下的每一个字符交换,第二部:固定第一个字符,求余下字符的全排列。这个时候我们仍把所有字符分成两部分:余下字符的第一个字符,以及这个字符之后的全部字符。然后重复上述过程,直至到达字符串的末尾位置。通过分析可以知道上述过程即为一个递归的过程。
注:注意全排列与组合的不同,具体可以参看我的博客:
基于上述思路代码如下:
#include
using namespace std;void permutation(char *str,char *start){ if(*start=='\0')//递归出口,即达到字符串的末尾 cout<
<
程序运行结果如下:

转载于:https://www.cnblogs.com/hainange/p/6334066.html

你可能感兴趣的文章
写给对前途迷茫的朋友:五句话定会改变你的人生
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
JAVA入门到精通-第86讲-半双工/全双工
查看>>
bulk
查看>>
js document.activeElement 获得焦点的元素
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>