es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Imprimiendo solo letras a y b recursivamente en Python.

Estaba pensando en cómo imprimir cadenas de a’s y b’s en cantidades iguales utilizando recursividad, por ejemplo:
si la entrada es “4”, las salidas serían aabb abab bbaa, baba, baab y abba.

Esto es lo que tengo hasta donde voy:

def ab_igual(longitud, actual):
    if longitud == 0:
        print(actual)
    else:
        k = -1
        ab_igual(longitud - 1, actual + "a")
        ab_igual(longitud - 1, actual + "b")

if __name__ == "__main__":
    print(ab_igual(4, " "))
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para imprimir cadenas de a’s y b’s en una cantidad igual utilizando recursión, puede modificar el código de arriba para llevar cuenta del número de a’s y b’s y agregarlos según sea necesario al recorrer el árbol de recursión. Aquí hay un fragmento de código actualizado:

    def ab_equal(length, current='', num_a=0, num_b=0):
        if length == 0:
            if num_a == num_b:
                print(current)
        else:
            ab_equal(length - 1, current + 'a', num_a + 1, num_b)
            ab_equal(length - 1, current + 'b', num_a, num_b + 1)
    
    
    if __name__ == "__main__":
        ab_equal(4)
    

    En esta versión modificada, la función toma dos parámetros adicionales num_a y num_b que llevan cuenta del número de a’s y b’s en la cadena actual. Solo imprimimos la cadena si el número de a’s y b’s es igual. También reemplazamos las comillas alrededor de ‘a’ y ‘b’ con comillas simples.

Comments are closed.