Se proporciona una lista anidada. La tarea es imprimir la suma de esta lista usando recursividad. Una lista anidada es una lista cuyos elementos también pueden ser una lista.
Ejemplos:
Input: [1,2,[3]] Output: 6 Input: [[4,5],[7,8,[20]],100] Output: 144 Input: [[1,2,3],[4,[5,6]],7] Output: 28
Recursión: En recursión, una función se llama a sí misma repetidamente. Esta técnica se usa generalmente cuando un problema se puede dividir en subproblemas más pequeños de la misma forma.
Implementación:
Iterar a través de la lista y cada vez que encontremos que un elemento de la lista también es una lista, eso significa que tenemos que hacer la misma tarea de encontrar la suma con esta lista de elementos (que también se puede anidar). Así que hemos encontrado un subproblema y podemos llamar a la misma función para realizar esta tarea y simplemente cambiar el argumento a esta sublista. Y cuando el elemento no es una lista, simplemente agregue su valor a la variable total global.
Python3
# Python Program to find sum # of nested list using Recursion def sum_nestedlist( l ): # specify that global variable is # referred to here in this function total = 0 for j in range(len(l)): if type(l[j]) == list : # call the same function if # the element is a list total+= sum_nestedlist(l[j]) else: # if it's a single element # and not a list, add it to total total += l[j] return total print(sum_nestedlist([[1,2,3],[4,[5,6]],7]))
28
Complejidad temporal: O(N), donde N es el número total de elementos de la lista.
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por shubhi18195 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA