Dada una string S , la tarea es mover todos los dígitos presentes en la string, al principio de la string.
Ejemplos:
Entrada: S = «Geeks4forGeeks123»
Salida: 4123GeeksforGeeks
Explicación:
La string dada contiene los dígitos 4, 1, 2 y 3. Mover todos los dígitos al principio de la string modifica la string a «4123GeeksforGeeks».Entrada: S = « GeeksforGeeks1234 A Computer Science Port7al»
Salida: 1234567GeeksforGeeks A Computer Science Portal
Enfoque: la idea es atravesar la string y mantener dos strings, una string contiene los dígitos y otra string contiene caracteres no numéricos . Al final, agregue ambas strings al resultado en el orden requerido.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program for the above approach class GFG { // Function to move all the digit // to the beginning of the string static void moveAllDigitAtBeginning( String str) { // Calculate the string length int len = str.length(); // Stores the digits StringBuilder digits = new StringBuilder(); // Stores the non-numeric character StringBuilder nonNumericCharacter = new StringBuilder(); // Traverse the string and // check if there is a digit for (char c : str.toCharArray()) { // If character is a digit, // add it to the string digits if (c >= 48 && c <= 57) { digits.append(c); } // Otherwise, add it to the // string nonNumericCharacter else { nonNumericCharacter.append(c); } } // Append both the strings digits.append( nonNumericCharacter.toString()); // Print the string System.out.print( digits.toString() + " "); } // Driver Code public static void main(String args[]) { // Given String str String str = "GeeksforGeeks123"; moveAllDigitAtBeginning(str); } }
Javascript
<script> // JavaScript program for the above approach // Function to move all the digit // to the beginning of the string function moveAllDigitAtBeginning(str) { // Calculate the string length var len = str.length; // Stores the digits var digits = []; // Stores the non-numeric character var nonNumericCharacter = []; // Traverse the string and // check if there is a digit var temp = str.split(""); for(const c of temp) { // If character is a digit, // add it to the string digits if (c.charCodeAt(0) >= 48 && c.charCodeAt(0) <= 57) { digits.push(c); } // Otherwise, add it to the // string nonNumericCharacter else { nonNumericCharacter.push(c); } } // Append both the strings digits.push(nonNumericCharacter.join("")); // Print the string document.write(digits.join("") + " "); } // Driver Code // Given String str var str = "GeeksforGeeks123"; moveAllDigitAtBeginning(str); // This code is contributed by rdtank </script>
123GeeksforGeeks
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Enfoque basado en expresiones regulares : el problema dado también se puede resolver usando expresiones regulares y reemplazar todos los caracteres no numéricos con la string vacía (» «) que le da todos los números y reemplazar todos los dígitos con la string vacía (» «) que le da todos los caracteres no numéricos. Al final, concatene la string e imprima el resultado.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program for the above approach class GFG { // Function to move all the digit // at the beginning of the string static void moveAllDigitAtBeginning( String str) { // Replace all the non-numeric // characters with " " and // replace all digits with " " String moveAllDigit = str.replaceAll("\\D+", "") + str.replaceAll("\\d+", ""); // Print the string System.out.println(moveAllDigit); } // Driver Code public static void main(String args[]) { // Given String str String str = "GeeksforGeeks1234"; moveAllDigitAtBeginning(str); } }
C#
// C# program for the above approach using System; using System.Text.RegularExpressions; public class GFG { // Function to move all the digit // at the beginning of the string static void moveAllDigitAtBeginning( String str) { // Replace all the non-numeric // characters with " " and // replace all digits with " " String moveAllDigit = Regex.Replace(str, "\\D+", "") +Regex.Replace(str, "\\d", ""); // Print the string Console.WriteLine(moveAllDigit); } // Driver Code public static void Main(String []args) { // Given String str String str = "GeeksforGeeks1234"; moveAllDigitAtBeginning(str); } } // This code is contributed by 29AjayKumar
1234GeeksforGeeks
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA