Dada una string de caracteres con dígitos incrustados en ella. La tarea es escribir un programa en Python para extraer todos los números que se arrastran, es decir, en el sufijo de la string.
Ejemplos:
Entrada: test_str = «GFG04»
Salida : 04
Explicación: 04 es el sufijo de la string y el número, por lo tanto, se extrae.
Entrada: test_str = «GFG143»
Salida : 143
Explicación: 143 es el sufijo de la string y el número, por lo tanto, se extrae.
Método n. ° 1: usar loop + isdigit() + rebanar
En esto, la string se invierte usando el corte, y la aparición del primer elemento que no es un dígito se registra usando isdigit y, por último, la lista se corta hasta el elemento y se invierte nuevamente para obtener el número de sufijo.
Python3
# Python3 code to demonstrate working of # Extract Suffix numbers # Using loop + isdigit() + slicing # initializing string test_str = "GFG04" # printing original string print("The original string is : " + str(test_str)) # loop for fetching the 1st non digit index rev_str = test_str[::-1] temp_idx = 0 for idx, ele in enumerate(rev_str): if not ele.isdigit(): temp_idx = idx break # reversing the extracted string to # get number res = rev_str[:temp_idx][::-1] # printing result print("Suffix number : " + str(res))
The original string is : GFG04 Suffix number : 04
Método #2: Usar expresiones regulares
Se pueden emplear expresiones regulares apropiadas para resolver este problema. Proporciona una solución compacta al problema.
Python3
# Python3 code to demonstrate working of # Extract Suffix numbers # Using regex import re # initializing string test_str = "GFG04" # printing original string print("The original string is : " + str(test_str)) # regex to extract number res = re.search(r"(\d+)$", test_str).group() # printing result print("Suffix number : " + str(res))
The original string is : GFG04 Suffix number : 04
La complejidad de tiempo y espacio para todos los métodos es la misma:
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(n)
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA