Solutiom #1:
void permute(char* str, int len, int level)
{
//if last character is reached, print the string
if(len == 1)
{
printf("%s\n", str-level);
return;
}
int i;
for(i=0; i < len; i++)
{
//swap first charater with the ith character
swap(&(str[0]), &(str[i]));
//recursively permute rest of the string
permute(str+1, len-1, level+1);
//bring first character back to its position
swap(&(str[0]), &(str[i]));
}
}
int main()
{
char str[20] = {0,};
sprintf(str, "abcd");
permute(str, strlen(str), 0);
return 0;
}
No comments:
Post a Comment