Dada una string, ordenarla en orden descendente.
Ejemplos:
Input : alkasingh Output : snlkihgaa Input : nupursingh Output : uusrpnnihg Input : geeksforgeeks Output : ssrokkggfeeee
Una solución simple es usar la función de clasificación de la biblioteca std::sort()
Implementación:
C++
// CPP program to sort a string in descending // order using library function #include <bits/stdc++.h> using namespace std; void descOrder(string &s) { sort(s.begin(), s.end(), greater<char>()); } int main() { string s = "geeksforgeeks"; descOrder(s); // function call for(int i = 0; i < s.size(); i++) cout << s[i]; return 0; }
Java
// Java program to sort a string in descending // order using library function import java.util.*; class GFG { static void descOrder(char[] s) { Arrays.sort(s); reverse(s); } static void reverse(char[] a) { int i, n = a.length; char t; for (i = 0; i < n / 2; i++) { t = a[i]; a[i] = a[n - i - 1]; a[n - i - 1] = t; } } // Driver code public static void main(String[] args) { char[] s = "geeksforgeeks".toCharArray(); descOrder(s); // function call System.out.println(String.valueOf(s)); } } // This code is contributed by 29AjayKumar
Python
# Python program to sort # a string in descending # order using library function def descOrder(s): s.sort(reverse = True) str1 = ''.join(s) print(str1) def main(): s = list('geeksforgeeks') # function call descOrder(s) if __name__=="__main__": main() # This code is contributed by # prabhat kumar singh
C#
// C# program to sort a string in descending // order using library function using System; class GFG { static void descOrder(char[] s) { Array.Sort(s); reverse(s); } static void reverse(char[] a) { int i, n = a.Length; char t; for (i = 0; i < n / 2; i++) { t = a[i]; a[i] = a[n - i - 1]; a[n - i - 1] = t; } } // Driver code public static void Main(String[] args) { char[] s = "geeksforgeeks".ToCharArray(); descOrder(s); // function call Console.WriteLine(String.Join("",s)); } } // This code is contributed by Rajput-Ji
PHP
<?php // PHP program to sort a string in descending // order using library function function descOrder($s) { $s = str_split($s); rsort($s); echo implode('', $s); } // Driver Code $s = "geeksforgeeks"; descOrder($s); // function call // This code is contributed by ita_c ?>
Javascript
<script> // JavaScript program to sort // a string in descending // order using library function function descOrder(s) { s.sort().reverse(); str1 = s.join(""); document.write(str1); } var s = "geeksforgeeks"; s = s.split(""); // function call descOrder(s); </script>
ssrokkggfeeee
La complejidad del tiempo es: O(n log n)
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 ‘z’ a ‘a’ 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 // in descending order #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 charters 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 = MAX_CHAR - 1; i >= 0; i--) for (int j = 0; j < charCount[i]; j++) cout << (char)('a' + i); } // Driver program to test above function int main() { string s = "alkasingh"; sortString(s); return 0; }
Java
// Java program to sort a string of characters // in descending order class GFG { static int MAX_CHAR = 26; // function to print string in sorted order static void sortString(String str) { // Hash array to keep count of characters. // Initially count of all charters is // initialized to zero. int charCount[] = new int[MAX_CHAR]; // Traverse string and increment // count of characters // 'a'-'a' will be 0, 'b'-'a' will be 1, for (int i = 0; i < str.length(); i++) { // so for location of character in count // array we will do str[i]-'a'. charCount[str.charAt(i) - 'a']++; } // Traverse the hash array and print // characters for (int i = MAX_CHAR - 1; i >= 0; i--) { for (int j = 0; j < charCount[i]; j++) { System.out.print((char) ('a' + i)); } } } // Driver code public static void main(String[] args) { String s = "alkasingh"; sortString(s); } } // This code is contributed by 29AjayKumar
Python3
# Python program to sort a string of characters # in descending order MAX_CHAR = 26; # function to print string in sorted order def sortString(str): # Hash array to keep count of characters. # Initially count of all charters is # initialized to zero. charCount = [0]*MAX_CHAR; # Traverse string and increment # count of characters for i in range(len(str)): # '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(MAX_CHAR - 1,-1, -1): for j in range(charCount[i]): print(chr(97+i),end=""); # Driver program to test above function s = "alkasingh"; sortString(s); # This code is contributed by Princi Singh
C#
// C# program to sort a string of characters // in descending order using System; class GFG { static int MAX_CHAR = 26; // function to print string in sorted order static void sortString(String str) { // Hash array to keep count of characters. // Initially count of all charters is // initialized to zero. int []charCount = new int[MAX_CHAR]; // Traverse string and increment // count of characters // 'a'-'a' will be 0, 'b'-'a' will be 1, for (int i = 0; i < str.Length; i++) { // 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 = MAX_CHAR - 1; i >= 0; i--) { for (int j = 0; j < charCount[i]; j++) { Console.Write((char) ('a' + i)); } } } // Driver code public static void Main(String[] args) { String s = "alkasingh"; sortString(s); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // Javascript program to sort a string of characters // in descending order 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 charters is // initialized to zero. let charCount = new Array(MAX_CHAR); for(let i = 0; i < charCount.length; i++) { charCount[i] = 0; } // Traverse string and increment // count of characters // 'a'-'a' will be 0, 'b'-'a' will be 1, for (let i = 0; i < str.length; i++) { // so for location of character in count // array we will do str[i]-'a'. charCount[str[i].charCodeAt(0) - 'a'.charCodeAt(0)]++; } // Traverse the hash array and print // characters for (let i = MAX_CHAR - 1; i >= 0; i--) { for (let j = 0; j < charCount[i]; j++) { document.write(String.fromCharCode ('a'.charCodeAt(0) + i)); } } } // Driver code let s = "alkasingh"; sortString(s); // This code is contributed by avanitrachhadiya2155 </script>
snlkihgaa
Complejidad de tiempo: O( n ), donde n es la longitud de la string de entrada.
Espacio Auxiliar: O( 1 ) .
Este artículo es una contribución de Aarti_Rathi y Prabhat kumar singh . 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