Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: flony en 18 Septiembre 2023, 03:03 am



Título: aplicación de if en subcadenas usando python
Publicado por: flony en 18 Septiembre 2023, 03:03 am
Tengo una cadena que solo contiene {[()]}.
La idea es que por cada llave corchete o paréntesis exista su correlativo cierre las posibles respuestas son true o false.
El problema que estoy hallando es que siempre sale true les paso mi código
Código:
class Solution():
    def isValid(self, s:str) -> bool:
        n=int (len(s)/2)
        while (n==0):
            for i in s:
                for j in reversed(s):
                    if (i!=j):
                        return False
                    break
            n-=1
        else:
            return True
       


Título: Re: aplicación de if en subcadenas usando python
Publicado por: Locura_23 en 18 Septiembre 2023, 04:23 am
Hola, no entiendo exactamente cuál es la función de ese código, pero asi como está siempre te va a lanzar True, incluso si le pasaras una cadena vacía "" como argumento, ya que si bien cumpliria con la condicion del while(), se ejecuta el for sin cambios ya que n tiene 0 elementos, luego va la linea de decremento n-=1, evalua la condicion del while() no la cumple entonces entra al else y retorna True.

Te recomendaría que utilices un debugger para que puedas ver los valores y las condiciones que se cumplen y cuales no.


Título: Re: aplicación de if en subcadenas usando python
Publicado por: reymosquito en 18 Septiembre 2023, 06:48 am
la verdad no sé si entendí, así que pongo una forma de resolver lo que creo es tu pregunta:
Código
  1. import re
  2. class Solution:
  3.  
  4.    def isValid(self,s):
  5.        return len(re.findall('[{,[,(]',s)) == len(re.findall('[},\],)]',s))
  6.  
  7. s = "{[()]}"
  8. p=Solution()
  9. print(p.isValid(s))
  10.