Dada una string de caracteres en minúscula de ‘a’ – ‘z’. Necesitamos escribir un programa para imprimir los caracteres de esta string en orden.
Ejemplos:
Input : bbccdefbbaa Output : aabbbbccdef Input : geeksforgeeks Output : eeeefggkkorss
Un enfoque simple será usar algoritmos de clasificación como clasificación rápida o clasificación combinada y clasificar la string de entrada e imprimirla.
Implementación:
C++
// C++ program to sort a string of characters #include<bits/stdc++.h> using namespace std; // function to print string in sorted order void sortString(string &str) { sort(str.begin(), str.end()); cout << str; } // Driver program to test above function int main() { string s = "geeksforgeeks"; sortString(s); return 0; }
Java
// Java program to sort a string of characters import java.util.Arrays; class GFG { // function to print string in sorted order static void sortString(String str) { char []arr = str.toCharArray(); Arrays.sort(arr); System.out.print(String.valueOf(arr)); } // Driver program to test above function public static void main(String[] args) { String s = "geeksforgeeks"; sortString(s); } } // This code is contributed by Rajput-Ji
Python3
# Python3 program to sort a string # of characters # function to print string in # sorted order def sortString(str) : str = ''.join(sorted(str)) print(str) # Driver Code s = "geeksforgeeks" sortString(s) # This code is contributed by Smitha
C#
// C# program to sort a string of characters using System; public class GFG { // function to print string in sorted order static void sortString(String str) { char []arr = str.ToCharArray(); Array.Sort(arr); Console.WriteLine(String.Join("",arr)); } // Driver program to test above function public static void Main() { String s = "geeksforgeeks"; sortString(s); } } // This code is contributed by 29AjayKumar
Javascript
<script> // javascript program to sort a string of characters let MAX_CHAR = 26; // function to print string in sorted order function sortString(str) { // Hash array to keep count of characters. // Initially count of all characters is // initialized to zero. let charCount = new Array(MAX_CHAR); charCount.fill(0); // Traverse string and increment // count of characters for (let i = 0; i < str.length; i++) // 'a'-'a' will be 0, 'b'-'a' will be 1, // so for location of character in count // array we will do str[i]-'a'. charCount[str[i].charCodeAt()-'a'.charCodeAt()]++; // Traverse the hash array and print // characters for (let i=0;i<MAX_CHAR;i++) for (let j=0;j<charCount[i];j++) document.write(String.fromCharCode('a'.charCodeAt()+i) ); } let s = "geeksforgeeks"; sortString(s); // This code is contributed by vaibhavrabadiya117. </script>
eeeefggkkorss
Complejidad de tiempo: O(n log n) , donde n es la longitud de la string.
Espacio Auxiliar: O( 1 ).
Un enfoque eficiente será observar primero que solo puede haber un total de 26 caracteres únicos. Por lo tanto, podemos almacenar el recuento de ocurrencias de todos los caracteres de ‘a’ a ‘z’ en una array codificada. El primer índice de la array hash representará el carácter ‘a’, el segundo representará ‘b’ y así sucesivamente. Finalmente, simplemente recorreremos la array hash e imprimiremos los caracteres de ‘a’ a ‘z’ la cantidad de veces que ocurrieron en la string de entrada.
A continuación se muestra la implementación de la idea anterior:
C++
// C++ program to sort a string of characters #include<bits/stdc++.h> using namespace std; const int MAX_CHAR = 26; // function to print string in sorted order void sortString(string &str) { // Hash array to keep count of characters. // Initially count of all characters is // initialized to zero. int charCount[MAX_CHAR] = {0}; // Traverse string and increment // count of characters for (int i=0; i<str.length(); i++) // 'a'-'a' will be 0, 'b'-'a' will be 1, // so for location of character in count // array we will do str[i]-'a'. charCount[str[i]-'a']++; // Traverse the hash array and print // characters for (int i=0;i<MAX_CHAR;i++) for (int j=0;j<charCount[i];j++) cout << (char)('a'+i); } // Driver program to test above function int main() { string s = "geeksforgeeks"; sortString(s); return 0; }
Java
// Java program to sort // a string of characters public class SortString{ static final int MAX_CHAR = 26; // function to print string in sorted order static void sortString(String str) { // Hash array to keep count of characters. int letters[] = new int[MAX_CHAR]; // Traverse string and increment // count of characters for (char x : str.toCharArray()) { // 'a'-'a' will be 0, 'b'-'a' will be 1, // so for location of character in count // array we will do str[i]-'a'. letters[x - 'a']++; } // Traverse the hash array and print // characters for (int i = 0; i < MAX_CHAR; i++) { for (int j = 0; j < letters[i]; j++) { System.out.print((char) (i + 'a')); } } } // Driver program to test above function public static void main(String[] args) { sortString("geeksforgeeks"); } } // This code is contributed // by Sinuhe
Python3
# Python 3 program to sort a string # of characters MAX_CHAR = 26 # function to print string in sorted order def sortString(str): # Hash array to keep count of characters. # Initially count of all characters is # initialized to zero. charCount = [0 for i in range(MAX_CHAR)] # Traverse string and increment # count of characters for i in range(0, len(str), 1): # 'a'-'a' will be 0, 'b'-'a' will be 1, # so for location of character in count # array we will do str[i]-'a'. charCount[ord(str[i]) - ord('a')] += 1 # Traverse the hash array and print # characters for i in range(0, MAX_CHAR, 1): for j in range(0, charCount[i], 1): print(chr(ord('a') + i), end = "") # Driver Code if __name__ == '__main__': s = "geeksforgeeks" sortString(s) # This code is contributed by # Sahil_Shelangia
C#
// C# program to sort // a string of characters using System; class GFG { // Method to sort a // string alphabetically public static string sortString(string inputString) { // convert input // string to char array char[] tempArray = inputString.ToCharArray(); // sort tempArray Array.Sort(tempArray); // return new sorted string return new string(tempArray); } // Driver Code public static void Main(string[] args) { string inputString = "geeksforgeeks"; Console.WriteLine(sortString(inputString)); } } // This code is contributed by Shrikant13
Javascript
<script> // JavaScript program to sort // a string of characters let MAX_CHAR = 26; // function to print string in sorted order function sortString(str) { // Hash array to keep count of characters. let letters=new Array(MAX_CHAR); for(let i=0;i<MAX_CHAR;i++) { letters[i]=0; } // Traverse string and increment // count of characters for(let x=0;x<str.length;x++) { // 'a'-'a' will be 0, 'b'-'a' will be 1, // so for location of character in count // array we will do str[i]-'a'. letters[str[x].charCodeAt(0) - 'a'.charCodeAt(0)]++; } // Traverse the hash array and print // characters for (let i = 0; i < MAX_CHAR; i++) { for (let j = 0; j < letters[i]; j++) { document.write(String.fromCharCode (i + 'a'.charCodeAt(0))); } } } // Driver program to test above function sortString("geeksforgeeks"); // This code is contributed by rag2127 </script>
eeeefggkkorss
Complejidad de tiempo: O(Max_CHAR*n) que se convierte en O(n) ya que MAX_CHAR es constante, entonces Complejidad de tiempo total:- O(n) donde n es la longitud de la string.
Espacio Auxiliar: O( 1 ).
Este artículo es una contribución de Aarti_Rathi y Harsh Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA