剑指Offer—字符串排列
来源:互联网 发布:软件行业发展概况 编辑:程序博客网 时间:2024/06/05 07:24
题目描述:输入一个字符串,打印出该字符串中字符的所有排列。
解析:step 1:求所有可能出现第一个位置的字符。把第一个字符与后面的每个字符交换。
step 2:固定第一个字符,将后面的字符利用递归进行全排列。
#include <iostream>#include <stdio.h>using namespace std;void StringPermutation(char *pStr,char *pBegin);//字符串排列void Permutation(char *pStr){ if(pStr==NULL) return; StringPermutation(pStr,pStr);}void StringPermutation(char *pStr,char *pBegin){ if(*pBegin=='\0') printf("%s\n",pStr); else { for(char* pCh=pBegin;*pCh!='\0';++pCh) { //将第一个字符与后面的字符依次置换 char tem=*pCh; *pCh=*pBegin; *pBegin=tem; //递归遍历后面的字符 StringPermutation(pStr,pBegin+1); //递归完成后,将调换的字符还原。 tem=*pBegin; *pBegin=*pCh; *pCh=tem; } }}//测试代码void Test(char *pStr){ if(pStr==NULL) printf("Test for NULL begins:\n"); else printf("Test for %s begins:\n",pStr); Permutation(pStr); printf("\n");}int main(){ //cout << "Hello world!" << endl; char s1[]=" "; Test(s1); char s2[]="a"; Test(s2); char s3[]="abc"; Test(s3); return 0;}
0 0
- 剑指Offer—字符串排列
- 剑指offer:字符串排列
- 剑指offer--字符串排列
- 《剑指offer》——字符串的排列
- 剑指offer——字符串的排列
- 剑指offer——字符串的排列
- 剑指offer——字符串的排列
- 剑指offer——27.字符串排列
- 剑指offer—字符串的排列
- 剑指offer(27)—字符串的排列
- 剑指Offer------字符串的排列(全排列)
- 【剑指offer】字符串的排列
- 剑指offer--字符串的排列
- 《剑指offer》字符串的排列
- 【剑指Offer】字符串的排列
- 剑指offer--字符串的排列
- 剑指Offer-28-字符串排列
- 剑指offer:字符串的排列
- 算法例题-求输入一个整数,输出对应二进制中1的个数。
- Scroller的工作原理概括
- 数据库表连接之左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)
- 第一次写博客,试试水吧,哈哈
- PAT乙级—1015. 德才论 (25)-native
- 剑指Offer—字符串排列
- 共同学习Java源代码--数据结构--ArrayList类(一)
- 理解卷及神经网络应用在自然语言处理的学习笔记
- 构建机器学习系统的20个经验教训
- python开发简单爬虫笔记
- Js中关于转义符的使用和单双引号的区别
- XMG quartz2D 画板的制作
- spring integration JMS-基于ActiveMQ实现
- SSM 三大框架---事务处理