字符串的排列 C++实现

来源:互联网 发布:郭靖 知乎 编辑:程序博客网 时间:2024/06/10 07:01

题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串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;}


 

0 0