Com a lista abaixo, responder as questões 1, 2, 3 e 4.
lista =[4,8,12,14,16,2,5,18,3,10,11,19,7,13,1]
Dada uma lista, retorne a lista reversa.

Passo 1

O enunciado dá uma lista e pede que você retorne a lista reversa. A lista fornecida é:
\text{lista} = [4, 8, 12, 14, 16, 2, 5, 18, 3, 10, 11, 19, 7, 13, 1]
Pergunta que vamos responder: “Dada essa lista, qual é a lista reversa?” (ou seja, os elementos na ordem inversa).

Passo 2

O que significa “lista reversa” e como pensar nela (passo-a-passo didático).
  • Se a lista tem n elementos, indexamos os elementos de 0 até n-1. Aqui vamos usar indexação começando em 0 porque é a forma mais comum em programação e na matemática discreta.
  • A ideia simples: o primeiro elemento da lista reversa é o último elemento da lista original, o segundo da reversa é o penúltimo da original, e assim por diante.
  • Fórmula genérica (muito útil para provar ou implementar): se chamarmos a lista original de \text{lista} e a lista reversa de \text{rev}, então para cada índice k com 0 \le k \le n-1 vale
\text{rev}[k] = \text{lista}[\,n-1-k\,].
  • Aqui n é o número de elementos da lista e k é a posição (contando a partir de zero). Essa fórmula diz: para montar a posição k da lista reversa, pegue a posição n-1-k da lista original.
Exemplo pequeno para fixar: se \text{lista}=[a,b,c] então n=3 e
\text{rev}[0]=\text{lista}[2]=c,\quad \text{rev}[1]=\text{lista}[1]=b,\quad \text{rev}[2]=\text{lista}[0]=a,
portanto \text{rev}=[c,b,a].

Passo 3

Calcular n para a lista dada (contagem explícita para não sobrar dúvida).
  • A lista tem os seguintes elementos (vou contar): 4,8,12,14,16,2,5,18,3,10,11,19,7,13,1.
  • Contando cada um temos n=15 elementos.
  • Logo o último índice é n-1=14. Isso significa que \text{lista}[14] é o último elemento da lista original.

Passo 4

Aplicar a fórmula \text{rev}[k]=\text{lista}[n-1-k] passo a passo para cada posição k de 0 até 14. Vou mostrar cada atribuição explicitamente (isso é exatamente o que você faria num rascunho da prova):
  • k=0:\quad \text{rev}[0]=\text{lista}[14]=1.
  • k=1:\quad \text{rev}[1]=\text{lista}[13]=13.
  • k=2:\quad \text{rev}[2]=\text{lista}[12]=7.
  • k=3:\quad \text{rev}[3]=\text{lista}[11]=19.
  • k=4:\quad \text{rev}[4]=\text{lista}[10]=11.
  • k=5:\quad \text{rev}[5]=\text{lista}[9]=10.
  • k=6:\quad \text{rev}[6]=\text{lista}[8]=3.
  • k=7:\quad \text{rev}[7]=\text{lista}[7]=18.
  • k=8:\quad \text{rev}[8]=\text{lista}[6]=5.
  • k=9:\quad \text{rev}[9]=\text{lista}[5]=2.
  • k=10:\quad \text{rev}[10]=\text{lista}[4]=16.
  • k=11:\quad \text{rev}[11]=\text{lista}[3]=14.
  • k=12:\quad \text{rev}[12]=\text{lista}[2]=12.
  • k=13:\quad \text{rev}[13]=\text{lista}[1]=8.
  • k=14:\quad \text{rev}[14]=\text{lista}[0]=4.
Essas atribuições descrevem, elemento a elemento, a construção da lista reversa. Na prova você pode escrever esse procedimento em palavras ou montar a lista final a partir desses valores.

Passo 5

Observações práticas (dicas rápidas para a prova):
  • Complexidade: percorrer os n elementos para montar a reversa dá tempo \mathcal{O}(n). Se você criar uma nova lista precisa de espaço extra \mathcal{O}(n). Existe um método in-place (sem memória extra) que troca pares simétricos: para i=0 até \lfloor (n-1)/2\rfloor troca \text{lista}[i] com \text{lista}[n-1-i]. Isso também leva \mathcal{O}(n) de tempo, mas usa \mathcal{O}(1) de espaço extra.
  • Na prova, se pedirem só “retorne a lista reversa”, sempre escreva claramente os elementos na ordem inversa (como vou colocar na resposta final). Se pedirem algoritmo, explique com a fórmula ou com o algoritmo de trocas acima.

Resposta

[1, 13, 7, 19, 11, 10, 3, 18, 5, 2, 16, 14, 12, 8, 4]

Exercícios relacionados