概述
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来
的所有字符串abc、acb、bac、bca、cab和cba。
//============================================================================
// Name
: PermutationAndCombination.cpp
// Author
: Lee
// Version
:
// Copyright
: Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include<deque>
using namespace std;
void perAndCom(char arr[],int len,deque<char> dq){
if(1==len){
while(dq.size()!=0){
cout<<dq.front();
dq.pop_front();
}
cout<<arr[0]<<endl;
return;
}
for(int i=0;i<len;i++){
deque<char> dq_one;
for(deque<char>::iterator itr=dq.begin();itr!=dq.end();itr++){
dq_one.push_back(*itr);
}
dq_one.push_back(arr[i]);
char child[len-1];
for(int j=0;j<i;j++){
child[j]=arr[j];
}
for(int j=i+1;j<len;j++){
child[j-1]=arr[j];
}
perAndCom(child,len-1,dq_one);
}
}
int main() {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
char test[4]={'a','b','c','d'};
deque<char> dq;
perAndCom(test,4,dq);
return 0;
}
最后
以上就是优秀鲜花为你收集整理的字符串的排列 C++实现的全部内容,希望文章能够帮你解决字符串的排列 C++实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复