/*
C++ 里面有这个函数 我也写过这道题目
以前是数字 这里是字符而已
这里用了一种新的思想 递归 交换第一个字符然后 后面做全排列
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void Permutation(char * str, char * begin)
{
if(*begin=='\0')
cout<<str<<endl;
else
{
for(char * pch=begin;*pch!='\0';pch++)
{
char tmp=*pch;
*pch=*begin;
*begin=tmp;
Permutation(str,begin+1);
tmp=*pch;
*pch=*begin;
*begin=tmp;
}
}
}
void Permu(char * str)
{
if(str==NULL) return ;
Permutation(str,str);
}
int main()
{
char str[]="abcdf";
cout<<str<<endl;
Permu(str);
return 0;
}
剑指offer面试题28字符串的所有排列permutation
最新推荐文章于 2021-09-08 12:44:51 发布