C++ 求一个字符串的所有排列

/*输入一个字符串,打印出该字符串中字符的所有排列*/
#include 
#include 

using namespace std;
void PermutationS2(char* pStr, char* pBegin)
{
	if(*pBegin == '\0')
		cout << pStr<<'\t';
	else
	{
		char *pTemp = pBegin;
		while(*pTemp != '\0')
		{
			swap(*pTemp,*pBegin);
			PermutationS2(pStr,pBegin+1);
			swap(*pTemp,*pBegin);
			pTemp ++;
		}
	}
}
void PermutationS1(char *pStr, int begin, int end)
{
	if(end - begin == 1)
		cout << pStr<<'\t';
	else{
		for(int i = begin; i < end; i++)
		{
			swap(pStr[begin],pStr[i]);
			PermutationS1(pStr, begin+1,end);
			swap(pStr[begin],pStr[i]);
		}
	}
}
void swap(char& a, char& b)
{
	char temp = b;
	b = a;
	a = temp;
}
void Permutation(char *pStr)
{
	if(pStr == NULL)
		return;
	/*int index = 0;
	while(pStr[index]!='\0')
		index++;*/
	cout << "Solution1: ";
	PermutationS1(pStr, 0, strlen(pStr));
	cout <

运行结果如下:

C++ 求一个字符串的所有排列_第1张图片



你可能感兴趣的:(C++)