#include <iostream>
using namespace std;
void swap(char* s1,char* s2) {
char temp = *s1;
*s1=*s2;
*s2=temp;
}
bool needSwap(char* str,int source,int target) {
for(int i=source;i<target;i++){
if(str[i] == str[target])
return false;
}
return true;
}
void perm(char* str,int index){
if(str[index]=='\0'){
cout<<str<<endl;
return;
}
for(int i=index;str[i] != '\0';i++) {
if(needSwap(str,index,i)) {
swap(str+index,str+i);
perm(str,index+1);
swap(str+index,str+i);
}
}
}
int main(){
char str[] = "abcdd";
perm(str,0);
return 0;
}
字符串全排列,去除重复
最新推荐文章于 2024-07-02 12:00:51 发布