En este artículo, aprenderemos cómo eliminar el contenido dentro de los corchetes sin eliminarlos en python.
Ejemplos:
Input: (hai)geeks Output: ()geeks Input: (geeks)for(geeks) Output: ()for()
Podemos eliminar el contenido dentro de los corchetes sin quitar los corchetes en 2 métodos, uno de ellos es usar los métodos incorporados de la biblioteca re y el segundo método es implementar esta funcionalidad iterando la string usando un bucle for
Método 1: Usaremos el método sub() de la biblioteca re (expresiones regulares).
sub(): la funcionalidad del método sub() es que encontrará el patrón específico y lo reemplazará con alguna string.
Este método encontrará la substring que está presente en los corchetes o paréntesis y la reemplazará con corchetes vacíos.
Acercarse :
- Importar la biblioteca re
- Ahora busque la substring presente entre corchetes y reemplácela con () usando el método sub().
- Necesitamos pasar el método sub() con 2 argumentos que son el patrón y la string para ser reemplazados por .
- Imprime la string.
En el siguiente código \(.*?\) representa la expresión regular para encontrar los corchetes que contienen algo de contenido. Los corchetes () tienen un significado especial en la expresión regular en python, por lo que Backlash \ se usa para escapar de ese significado.
Python3
# Importing module import re # Input string string="(Geeks)for(Geeks)" # \(.*?\) ==> it is a regular expression for finding # the pattern for brackets containing some content string=re.sub("\(.*?\)","()",string) # Output string print(string)
()for()
Complejidad temporal: O(2^m + n).
Donde m es el tamaño de la expresión regular y n es el tamaño de la string. Aquí, el método sub() tardará 2^m en encontrar el patrón usando la expresión regular y O(n) para iterar a través de la string y reemplazarlo con «()».
Método 2: en este método, iteramos a través de la string y si el carácter que se está iterando no está presente entre paréntesis, entonces el carácter se agregará a la string resultante.
Si hay un paréntesis abierto o cerrado presente en la string, el paréntesis se agregará a la string resultante, pero la string intermedia no se agregará a la string resultante.
Acercarse:
- Iterar el bucle para cada carácter de la string.
- Si aparece un ‘(‘ o ‘)’ en la string, lo agregaremos a la string de resultados.
- Si el número de paréntesis en la string es cero, agregue el carácter a la string de resultado.
- Aquí, si el número de paréntesis es mayor que cero, indica que el carácter actual que se está iterando está presente entre dos paréntesis.
- Imprime la string de resultados.
Python3
# Input string string="geeks(for)geeks" # resultant string result = '' # paren counts the number of brackets encountered paren= 0 for ch in string: # if the character is ( then increment the paren # and add ( to the resultant string. if ch == '(': paren =paren+ 1 result = result + '(' # if the character is ) and paren is greater than 0, # then increment the paren and # add ) to the resultant string. elif (ch == ')') and paren: result = result + ')' paren =paren- 1 # if the character neither ( nor then add it to # resultant string. elif not paren: result += ch # print the resultant string. print(result)
geeks()geeks
Complejidad temporal : O(n).
Aquí n es la longitud de la string. En el código, iteramos a través de la string y agregamos el contenido fuera del paréntesis, por lo que solo tomaría el tiempo O (n).
Publicación traducida automáticamente
Artículo escrito por pulamolusaimohan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA