# Missing Permutations in a list

Given a list of permutations of any word. Find the missing permutation from the list of permutations.

Examples:

```Input : Permutation_given[] = {"ABCD", "CABD", "ACDB",
Output : DBAC DBCA
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

1) We create a set of all given strings.
2) And one more set of all permutations.
3) Finally return difference between two sets.

 `#include ` `using` `namespace` `std; ` ` `  `void` `find_missing_strings(string Permutation_given[], ``size_t` `Size_Permutation_given) ` `{ ` `    ``// vector "permutation" containing all ` `    ``// the permutation of input string ` `    ``vector permutations; ` ` `  `    ``// Here we can take any string ` `    ``// from the given list and do ` `    ``// the necessary permutation ` `    ``string input = Permutation_given; ` `    ``permutations.push_back(input); ` ` `  `    ``// In the loop we will store ` `    ``// all the permutations of the string ` `    ``// in the vector "permutation". ` `    ``while` `(``true``) { ` ` `  `        ``string p = permutations.back(); ` ` `  `        ``// Getting next permutation of input string ` `        ``next_permutation(p.begin(), p.end()); ` `        ``if` `(p == permutations.front()) ` `            ``break``; ` ` `  `        ``permutations.push_back(p); ` `    ``} ` ` `  `    ``// vector containing all the ` `    ``// missing strings in permutation ` `    ``vector missing; ` ` `  `    ``// given_permutations contains the ` `    ``// permutation of the input string ` `    ``set given_permutations(Permutation_given,  ` `         ``Permutation_given + Size_Permutation_given); ` ` `  `    ``// Through the set difference we will get  ` `    ``// the missing words in vector missing ` `    ``set_difference(permutations.begin(), permutations.end(), ` `                                 ``given_permutations.begin(), ` `                                 ``given_permutations.end(),  ` `                                  ``back_inserter(missing)); ` ` `  `    ``// printing all the missing string ` `    ``for` `(``auto` `i = missing.begin(); i != missing.end(); ++i) ` `        ``cout << *i << endl; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``string Permutation_given[] = { ` `        ``"ABCD"``, ``"CABD"``, ``"ACDB"``, ``"DACB"``, ` `        ``"BCDA"``, ``"ACBD"``, ``"ADCB"``, ``"CDAB"``, ` `        ``"DABC"``, ``"BCAD"``, ``"CADB"``, ``"CDBA"``, ` `        ``"CBAD"``, ``"ABDC"``, ``"ADBC"``, ``"BDCA"``, ` `        ``"DCBA"``, ``"BACD"``, ``"BADC"``, ``"BDAC"``, ` `        ``"CBDA"``, ``"DCAB"` `    ``}; ` ` `  `    ``// size of permutation list ` `    ``size_t` `Size_Permutation_given =  ` `                 ``sizeof``(Permutation_given) /  ` `                 ``sizeof``(*Permutation_given); ` ` `  `    ``find_missing_strings(Permutation_given,  ` `                    ``Size_Permutation_given); ` ` `  `    ``return` `0; ` `} `

Output:

```DBAC
DBCA
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : sanskar27jain

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.