Given a string s, the task is to print all permutations of a string that are in ascending order, i.e., their characters are in ascending order.
Examples:
Input: Cplusplus Output: Cllppssuu Out of all the permutations of the string Cllppssuu is the only string which is sorted. Input: cba Output: abc
RECOMMENDED: Characteristics or features of an Algorithm
Approach:
There will always be only one string that will be in ascending order.
Below is the implementation of the above approach.
C++
// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
void printString(string s)
{
sort(s.begin(), s.end());
cout << s << "\n";
}
int main()
{
string s = "Cplusplus";
printString(s);
return 0;
}
Java
// Java implementation of the above approach
import java.util.Arrays;
public class Solution {
public static void printString(String s) {
char[] tempArray = s.toCharArray();
// Sort tempArray
Arrays.sort(tempArray);
// Print the new sorted string
System.out.println(tempArray);
}
public static void main(String[] args) {
String s = "Cplusplus";
printString(s);
}
}
C#
// C# implementation of the above approach
using System;
class Solution {
public static void printString(string s) {
char[] arr = s.ToCharArray();
Array.Sort(arr);
Console.WriteLine(string.Join("", arr));
}
public static void Main() {
string s = "Cplusplus";
printString(s);
}
}
Output:
Cllppssuu
Time Complexity: O(nlogn), due to sorting.
Please write comments below if you find anything incorrect, or you want to share more information about the topic discussed above. A gentle request to share this topic on your social media profile.
