Given a string that may contain duplicates, write a function to print all permutations of given string such that no permutation is repeated in output.
Input: str = "AB" Output: AB BA Input: str = "AA" Output: AA Input: str = "ABC" Output: ABC ACB BAC BCA CBA CAB Input: str = "ABA" Output: ABA AAB BAA Input: str = "ABCA" Output: AABC AACB ABAC ABCA ACBA ACAB BAAC BACA BCAA CABA CAAB CBAA
We have discussed an algorithm to print all permutations in below post. It is strongly recommended to refer below post as a prerequisite of this post.
The algorithm discussed on above link doesn’t handle duplicates.
1 ABCC 2 ACBC 3 ACCB 4 BACC 5 BCAC 6 BCCA 7 CABC 8 CACB 9 CBAC 10 CBCA 11 CCAB 12 CCBA
The above code is taken from a comment below by Mr. Lazy.
Time Complexity: O(n2 * n!)
Auxiliary Space: O(1)
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
- Print distinct sorted permutations with duplicates allowed in input
- Print first n distinct permutations of string using itertools in Python
- Java Program to print distinct permutations of a string
- Distinct permutations of the string | Set 2
- Print all palindrome permutations of a string
- Print all permutations of a string in Java
- Write a program to print all permutations of a given string
- Print all the palindromic permutations of given string in alphabetic order
- Print all permutations with repetition of characters
- Print k different sorted permutations of a given array
- Print all permutations in sorted (lexicographic) order
- Permutations of a given string using STL
- All permutations of a string using iteration
- Permutations of string such that no two vowels are adjacent
- Check if a binary string contains all permutations of length k