您的位置:首页 > 其它

字符串的排列

2014-06-06 23:04 99 查看
#include<iostream>
#include<string>
using namespace std;

void swap(char& a,char& b)
{
if( a == b)
return;
char temp = a;
a = b;
b = temp;
}
void permutation(string& ptr, int i);

void permutation(string& s)
{
if(s.size() <= 0)
return;
permutation(s, 0);
}
void permutation(string& ptr, int i)
{
if(i >= ptr.size())
{
cout << ptr << endl;
}
for(int j = i;  j != ptr.size(); ++j)
{

if(ptr[i] == ptr[j] && i != j)  // 此处避免相同字符
continue;

swap(ptr[i],ptr[j]);
{
permutation(ptr,i+1);

}
swap(ptr[i],ptr[j]);
}
}

int main()
{
string s;
cin >> s;
permutation(s);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: