</pre><pre name="code" class="cpp"><pre name="code" class="cpp">#include <iostream>
#include <vector>
#include <string>
using namespace std;
//若有重复 添加一个剪枝函数
bool isCut(string & str,int k,int m)
{
for(int i=k;i<m;++i)
{
if(str[i] == str[m]) return false;
}
return true;
}
void permutation(string str,int k)
{
if(k==str.size())
{
cout << str<<ends;
return ;
}
for(int i=k;i<str.size();++i)
{
if(isCut(str,k,i))//剪枝
{
swap(str[k],str[i]);
permutation(str,k+1);
swap(str[k],str[i]);
}
}
}
void permutation(string & str)
{
permutation(str,0);
}
void main()
{
string str = "aabc";
permutation(str);
}
字符串的排列
最新推荐文章于 2023-09-20 10:40:24 发布