Em pseudocódigo, qual é o caso base adequado para um algoritmo recursivo que verifica se uma lista L é…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em pseudocódigo, qual é o caso base adequado para um algoritmo recursivo que verifica se uma lista L é palíndroma (mesma sequência lida em ambas direções)?
- A) O caso base deve retornar falso se a lista tiver um elemento.
- B) O caso base deve apenas verificar se a lista tem dois elementos.
- C) A lista deve ter pelo menos três elementos para ser verificada.
- D) Se L está vazia ou tem um elemento, retornar verdadeiro.
- E) O algoritmo deve sempre retornar verdadeiro independente do conteúdo da lista.
✅ Resposta correta: alternativa D
Resolução passo a passo
- Uma lista é palíndroma quando a sequência é a mesma lida do início ao fim e do fim ao início. Passo 2: Na recursão, comparamos o primeiro e o último elementos de L; se forem iguais, repetimos o processo para a lista formada pelo miolo, isto é, L sem os extremos. Passo 3: O caso base é o ponto em que a recursão para sem precisar de novas comparações. Se L está vazia ou tem um único elemento, não existe par de extremos diferentes para comparar, então a lista é palíndroma e a função retorna verdadeiro. Passo 4: Por isso a alternativa D está correta. Passo 5: A alternativa A está errada porque uma lista com um elemento é trivialmente palíndroma, não o contrário. Passo 6: A alternativa B está errada porque exigir exatamente dois elementos deixa sem tratamento as listas vazias e as de tamanho ímpar, que chegam ao fim da recursão com um único elemento no meio. Passo 7: A alternativa C está errada porque não há exigência de três elementos; listas com zero, um ou dois elementos também devem ser tratadas corretamente. Passo 8: A alternativa E está errada porque o resultado depende do conteúdo: a lista ['a','b'] não é palíndroma, por exemplo.
💡 Dica: Considere as características de uma lista palíndroma.
Alternativa por alternativa
Acredita que uma lista com um único elemento não pode ser palíndroma, quando na verdade ela é lida igual nos dois sentidos.
Acha que o caso base precisa ser exatamente uma lista com dois elementos, sem perceber que listas vazias e de tamanho ímpar também precisam de tratamento para encerrar a recursão.
Por que engana: O aluno pode confundir o caso base correto, acreditando que listas com um ou dois elementos não podem ser palíndromas.
Supõe que só listas com pelo menos três elementos fazem sentido para a verificação, quando listas menores também são casos válidos e devem ser tratadas pelo caso base.
Listas vazias ou unitárias são palíndromos por definição; esse caso base garante término da recursão antes de comparar pares de extremos.
Entende que palíndromo é qualquer lista, sem ler a definição de que a sequência deve ser igual nos dois sentidos, o que faz o resultado depender do conteúdo.
Raio-X da questão
algoritmo recursivo
avaliacao
algoritmo recursivo · estrutura de listas
Revisar os conceitos de recursão e palíndromos.
O aluno pode confundir o caso base correto, acreditando que listas com um ou dois elementos não podem ser palíndromas.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em pseudocódigo, qual deve ser o caso base de um algoritmo recursivo que conta elementos de uma lista L (variável L)…
- Escreva em pseudocódigo um algoritmo recursivo count_pares(L) que recebe uma lista L de inteiros e retorna a quantidade…
- Projete em pseudocódigo uma função recursiva duplicar(L) que recebe uma lista L de inteiros e retorna uma nova lista em…
- Projete em pseudocódigo uma função recursiva permutar(L) que recebe uma lista L com n elementos distintos e retorna uma…
- Projete em pseudocódigo uma função recursiva subsequencias(L) que recebe uma lista L de inteiros e retorna a lista de…
- Projete em pseudocódigo uma função recursiva que verifica se uma lista de inteiros L está estritamente crescente (cada…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
