思路:直接用全排列 next_permutation() 函数,在函数加上一个count1做统计。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s,x; cin>>s;
x = s;
int count1 = 0;
sort(s.begin(),s.end());
do{
while(s==x){
cout<<count1<<endl;
break;
}
count1++;
}while(next_permutation(s.begin(),s.end()));
return 0;
}
next_permutation()是按照字典序产生排列的,并且是从数组中当前的字典序开始依次增大直至到最大字典序
其用法为:
int a[4];
do
{
}
while(next_permutation(a,a+n));
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[4]= {4,2,1,3};
sort(a,a+4);
do{
for(int i=0;i<4;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}while(next_permutation(a,a+4));
return 0;
}