

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Pilhas podem ser implementadas em Python por meio de listas em que o último elemento é o topo da pilha, como no exemplo abaixo:
pilha01 = ['a4', 'a3', 'a2', 'a1'] # o elemento 'a1' está
# no topo da pilha
pilha02 = ['b2', 'b1'] # o elemento 'b1' está no topo da pilha
Considere uma função Python, chamada unifica, que recebe duas pilhas como parâmetros e retorna uma terceira, que é o resultado da intercalação dos elementos das duas pilhas recebidas como parâmetros. Um programa Python chamou essa função unifica, passando como parâmetros as duas pilhas do exemplo acima (pilha01 e pilha02). O resultado da intercalação foi a pilha
['a4', 'a3', 'b2', 'a2', 'b1', 'a1']
Qual implementação da função unifica realiza o que foi descrito acima?
def unifica(p1, p2):
p3 = [ ]
while len(p1) > 0:
p3.append(p1.pop())
while len(p2) > 0:
p3.append(p2.pop())
return p3
def unifica(p1, p2):
p3 = [ ]
while len(p1) > 0 and len(p2) > 0 :
p3.append(p1.pop())
p3.append(p2.pop())
return p3
def unifica(p1, p2):
p3 = [ ]
p4 = [ ]
while len(p1) > 0 and len(p2) > 0 :
p3.append(p1.pop())
p3.append(p2.pop())
while len(p3) > 0:
p4.append(p3.pop())
return p4
def unifica(p1, p2):
p3 = [ ]
p4 = [ ]
while len(p1) > 0 or len(p2) > 0 :
if len(p1) != 0:
p3.append(p1.pop())
if len(p2) != 0:
p3.append(p2.pop())
while len(p3) > 0:
p4.append(p3.pop())
return p4
def unifica(p1, p2):
p3 = [ ]
p4 = [ ]
while len(p1) != 0:
if len(p1) != 0:
p3.append(p1.pop())
while len(p2) != 0:
if len(p2) != 0:
p3.append(p2.pop())
while len(p3) > 0:
p4.append(p3.pop())
return p4