Given a string S. The task is to print all permutations of a given string.
/*
Example 1:
Input: ABC
Output:
ABC ACB BAC BCA CAB CBA
Explanation:
Given string ABC has permutations in 6
forms as ABC, ACB, BAC, BCA, CAB and CBA .
Example 2:
Input: ABSG
Output:
ABGS ABSG AGBS AGSB ASBG ASGB BAGS
BASG BGAS BGSA BSAG BSGA GABS GASB
GBAS GBSA GSAB GSBA SABG SAGB SBAG
SBGA SGAB SGBA
Explanation:
Given string ABSG has 24 permutations.
Your Task:
You don't need to read input or print anything. Your task is to complete the function find_permutaion() which takes the string S as input parameter and returns a vector of string in lexicographical order.
Expected Time Complexity: O(n! * n)
Expected Space Complexity: O(n)
*/
// { Driver Code Starts
#include <bits/stdc++.h>
using namespace std;
// } Driver Code Ends
class Solution
{
public:
vector<string> find_permutation(string S)
{
vector<string> r;
// Code here there
sort(S.begin(), S.end());
do
{
r.push_back(S);
} while (next_permutation(S.begin(), S.end()));
return r;
}
};
// { Driver Code Starts.
int main()
{
int t;
cin >> t;
while (t--)
{
string S;
cin >> S;
Solution ob;
vector<string> ans = ob.find_permutation(S);
for (auto i : ans)
{
cout << i << " ";
}
cout << "\n";
}
return 0;
}
// } Driver Code Ends
Comments
Post a Comment