Permutation of String letters: How to remove repeated permutations?

前端 未结 10 2267
遇见更好的自我
遇见更好的自我 2020-12-25 08:39

Here is a standard function to print the permutations of characters of a string:

void permute(char *a, int i, int n)
{
   int j;
   if (i == n)
     printf(\         


        
10条回答
  •  失恋的感觉
    2020-12-25 09:03

    Do not permute for same character at different position of the string.

    In Python:

    def unique_permutation(a, l, r):
        if l == r:
            print ''.join(a)
            return
        for i in range(l, r+1):
            if i != l and a[i] == a[l]:
                continue
            a[i], a[l] = a[l], a[i]
            unique_permutation(a, l+1, r)
            a[i], a[l] = a[l], a[i]
    

提交回复
热议问题