Scott
0
Q:

find all permutations of a set of string

void permute(string a, int l, int r)  
{  
    // Base case  
    if (l == r)  
        cout<<a<<endl;  
    else
    {  
        // Permutations made  
        for (int i = l; i <= r; i++)  
        {  
  
            // Swapping done  
            swap(a[l], a[i]);  
  
            // Recursion called  
            permute(a, l+1, r);  
  
            //backtrack  
            swap(a[l], a[i]);  
        }  
    }  
}  
6
void perm(char a[], int level){

    static int flag[10] = {0};
    static char res[10];
    // If we are the last character of the input string 
    if(a[level] == '\0'){
        // First we assign stopping point to result
        res[level] = '\0';
        // Now we print everything
        for(int i = 0; res[i] != '\0'; ++i){
            printf("%c", res[i]);
        }
        printf("\n");
        ++counter;
    }
    else{
        // Scan the original string and flag to see what letters are available
        for(int i = 0; a[i] != '\0'; ++i){
            if(flag[i] == 0){
                res[level] = a[i];
                flag[i] = 1;
                perm(a, level + 1);
                flag[i] = 0;
            }
        }
    }
}

int main(){
    char first[] = "abc";
    perm(first, 0);
    return 0;
}
1
// C# program to print all  
// permutations of a given string. 
using System; 
  
class GFG 
{ 
    /** 
    * permutation function 
    * @param str string to  
       calculate permutation for 
    * @param l starting index 
    * @param r end index 
    */
    private static void permute(String str, 
                                int l, int r) 
    { 
        if (l == r) 
            Console.WriteLine(str); 
        else
        { 
            for (int i = l; i <= r; i++) 
            { 
                str = swap(str, l, i); 
                permute(str, l + 1, r); 
                str = swap(str, l, i); 
            } 
        } 
    } 
  
    /** 
    * Swap Characters at position 
    * @param a string value 
    * @param i position 1 
    * @param j position 2 
    * @return swapped string 
    */
    public static String swap(String a,  
                              int i, int j) 
    { 
        char temp; 
        char[] charArray = a.ToCharArray(); 
        temp = charArray[i] ; 
        charArray[i] = charArray[j]; 
        charArray[j] = temp; 
        string s = new string(charArray); 
        return s; 
    } 
  
// Driver Code 
public static void Main() 
{ 
    String str = "ABC"; 
    int n = str.Length; 
    permute(str, 0, n-1); 
} 
} 
  
// This code is contributed by mits 
0

New to Communities?

Join the community