Dada la string numérica str , la tarea es eliminar todos los ceros iniciales de una string dada. Si la string contiene solo ceros , imprima un solo «0» .
Ejemplos:
Entrada: str = “0001234”
Salida: 1234
Explicación:
La eliminación de la substring inicial “000” modifica la string a “1234”.
Por lo tanto, la respuesta final es «1234».Entrada: str = “00000000”
Salida: 0
Explicación:
No hay números excepto 0
Enfoque ingenuo:
el enfoque más simple para resolver el problema es recorrer la string hasta el primer carácter distinto de cero presente en la string y almacenar la string restante a partir de ese índice como respuesta. Si se recorre toda la string, significa que todos los caracteres de la string son ‘0’ . Para este caso, guarde “0” como respuesta. Imprime la respuesta final.
A continuación se muestra la implementación de la idea anterior:
Java
// Java Program to remove all the leading //zeros from a given numeric string import java.io.*; class GFG { // Function to remove the leading zeros static String removeLeadingZeros(String num) { //traverse the entire string for(int i=0;i<num.length();i++){ //check for the first non-zero character if(num.charAt(i)!='0'){ //return the remaining string String res = num.substring(i); return res; } } //If the entire string is traversed //that means it didn't have a single //non-zero character, hence return "0" return "0"; } // Driver Code public static void main(String[] args) { String num = "1023"; System.out.println(removeLeadingZeros(num)); num = "00123"; System.out.println(removeLeadingZeros(num)); } } // This code is contributed by shruti456rawal
1023 123
Complejidad temporal: O(N)
Espacio auxiliar: O(N)
Enfoque de uso eficiente del espacio:
siga los pasos a continuación para resolver el problema en el espacio constante usando la expresión regular :
- Cree una expresión regular como se indica a continuación para eliminar los ceros iniciales
regex = “^0+(?!$)”
donde:
^0+ coincide con uno o más ceros desde el principio de la string.
(?!$) es una expresión de anticipación negativa , donde “$” significa el final de la string.
- Utilice el método replaceAll() incorporado de la clase String que acepta dos parámetros, una expresión regular y una string de reemplazo .
- Para eliminar los ceros iniciales, pase Regex como primer parámetro y una string vacía como segundo parámetro .
- Este método reemplaza el valor coincidente con la string dada.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to implement // the above approach #include <iostream> #include <regex> using namespace std; // Function to remove all leading // zeros from a given string void removeLeadingZeros(string str) { // Regex to remove leading // zeros from a string const regex pattern("^0+(?!$)"); // Replaces the matched // value with given string str = regex_replace(str, pattern, ""); cout << str; } // Driver Code int main() { string str = "0001234"; removeLeadingZeros(str); return 0; }
Java
// Java Program to implement // the above approach import java.util.regex.*; class GFG { // Function to remove all leading // zeros from a given string public static void removeLeadingZeros(String str) { // Regex to remove leading // zeros from a string String regex = "^0+(?!$)"; // Replaces the matched // value with given string str = str.replaceAll(regex, ""); System.out.println(str); } // Driver Code public static void main(String args[]) { String str = "0001234"; removeLeadingZeros(str); } }
Python3
# Python3 Program to implement # the above approach import re # Function to remove all leading # zeros from a given string def removeLeadingZeros(str): # Regex to remove leading # zeros from a string regex = "^0+(?!$)" # Replaces the matched # value with given string str = re.sub(regex, "", str) print(str) # Driver Code str = "0001234" removeLeadingZeros(str) # This code is contributed by avanitrachhadiya2155
C#
// C# program to implement // the above approach using System; using System.Text.RegularExpressions; class GFG{ // Function to remove all leading // zeros from a given string public static void removeLeadingZeros(string str) { // Regex to remove leading // zeros from a string string regex = "^0+(?!$)"; // Replaces the matched // value with given string str = Regex.Replace(str, regex, ""); Console.WriteLine(str); } // Driver Code public static void Main(string[] args) { string str = "0001234"; removeLeadingZeros(str); } } // This code is contributed by ukasp
Javascript
<script> // Javascript Program to implement // the above approach // Function to remove all leading // zeros from a given string function removeLeadingZeros(str) { // Regex to remove leading // zeros from a string const regex = new RegExp("^0+(?!$)",'g'); // Replaces the matched // value with given string str = str.replaceAll(regex, ""); document.write(str); } // Driver Code let str = "0001234"; removeLeadingZeros(str); // This code is contributed by unknown2108 </script>
1234
Complejidad de tiempo: O(N), donde N es la longitud de la string.
Espacio Auxiliar: O(1)
Enfoque específico de Java: consulte este artículo para conocer el enfoque específico de Java mediante StringBuffer .
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