[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/izanbf1803/algorithms-python/master/array/flatten.py [Back]  [Original]

"""
Implement Flatten Arrays.
Given an array that may contain nested arrays,
give a single resultant array.

function flatten(input){
}

Example:

Input: var input = [2, 1, [3, [4, 5], 6], 7, [8]];
flatten(input);
Output: [2, 1, 3, 4, 5, 6, 7, 8]
"""


def list_flatten(l, a=None):
    a = list(a) if isinstance(a, (list, tuple)) else []
    for i in l:
        if isinstance(i, (list, tuple)):
            a = list_flatten(i, a)
        else:
            a.append(i)
    return a


# stack version
# public static List flatten(List l) {
# List main = new ArrayList();
		# Stack stack = new Stack();
		# Stack indexes = new Stack();
		# stack.add(l);
		# indexes.add(0);
		# while (true) {
			# if (stack.isEmpty())
				# break;
			# int index1 = indexes.pop();
			# l = stack.pop();
			# for (int i = index1; i < l.size(); i++) {
				# NestedList n = l.get(i);
				# if (n.isInteger()) {
					# main.add(n.value);
				# } else {
					# stack.add(l);
					# indexes.add(i+1);
					# l = n.list;
					# stack.add(l);
					# indexes.add(0);
					# break;

				# }
			# }
		# }

		# return main;
# }

Web Proxy Viewer  |  New URL  |  Original Page