面试题28.字符串的排列
2015-08-30 15:27
423 查看
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,
则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba.
此题的主要步骤由如下几步:
1.求出所有可能出现在第一个位置的字符
2.将第一个字符与后面字符分别交换
3.将第一个字符后面的字符递归步骤1,2
代码如下:
运行截图:
则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba.
此题的主要步骤由如下几步:
1.求出所有可能出现在第一个位置的字符
2.将第一个字符与后面字符分别交换
3.将第一个字符后面的字符递归步骤1,2
代码如下:
#include <iostream> using namespace std; void FunOfString(char* Str,char* Begin) { if(!Str||!Begin) { return; } if(*Begin=='\0') { cout<<Str<<endl; } else { for(char* ch=Begin;*ch!='\0';ch++) { char temp; temp=*ch; *ch=*Begin; *Begin=temp; FunOfString(Str,Begin+1); temp=*ch; *ch=*Begin; *Begin=temp; } } } int main() { char Str[]="vpoet"; FunOfString(Str,Str); system("pause"); return 0; }
运行截图:
![](http://images2015.cnblogs.com/blog/653903/201508/653903-20150830152649281-1331465887.png)
相关文章推荐
- 面试题2:实现一个Singleton模式
- 控制反转与依赖注入
- 阿里2016面试笔试题目之棋盘走法
- 剑指offer-第六章面试中的各项能力(和为S的两个数字VS和为S的连续正序列)
- 剑指offer-第六章面试中的各项能力(和为S的两个数字VS和为S的连续正序列)
- 华为面试:字符逆序
- 华为面试题:(练习用)挑7
- 面试题27.二叉搜索树与双向链表
- 面试题33把数组排成最小的数
- 《剑指Offer》面试题:二维数组中的查找
- 苦逼的程序员
- Java GC 面试问题
- 面试搜集
- 面试题 输入两个很大的正数(用C字符串表示),输出它们的乘积,不考虑非法输入
- 《剑指Offer》面试题:替换空格
- 面试---技术
- 常用面试编程例子
- 黑马程序员 --- NSArray和NSMutableArray的用法
- Web前端面试总结
- 记录真实想法,在路上不断前行——关于工作,学习,职场