因此,我试图在C中查找字符串的所有可能排列。我将其与Bell算法配合使用,但是只能找到输入字符串长度的排列,所以我将如何查找所有字符串。例如如果我有ab,那么排列将是babba。我尝试了以下方法,但返回了一些奇怪的东西。
for (i = 0; i < strlen(a) - 1; i++) {
permute(a, 0, i);
}
置换是
void permute(char *a, int i, int n){
int j;
if (i == n){
printf("%s\n", a);
}
else
{
for (j = i; j <= n; j++)
{
swap((a+i), (a+j));
permute(a, i+1, n);
swap((a+i), (a+j));
}
}
}
交换功能是
void swap(char *x, char *y)
{
char temp;
temp = *x;
*x = *y;
*y = temp;
}
编辑:这被标记为某条帖子的副本,该帖子实际上并没有帮助我,但在Generating permutations of a string in a range
处找到了解决方案