Sublista

Sublista

Médio

Instruções

Dadas duas listas quaisquer A e B, determina se:

  • A lista A é equal à lista B; ou
  • A lista A contém a lista B (A é superlist de B); ou
  • A lista A está contida na lista B (A é sublist de B); ou
  • Nenhuma das afirmações anteriores é verdadeira, pelo que as listas A e B são unequal

Mais concretamente, a lista A é equal à lista B se ambas as listas tiverem os mesmos valores na mesma ordem. A lista A é superlist de B se A contiver uma subsequência contígua de valores igual a B. A lista A é sublist de B se B contiver uma subsequência contígua de valores igual a A.

Exemplos:

  • Se A = [] e B = [] (ambas as listas estão vazias), então A e B são equal
  • Se A = [1, 2, 3] e B = [], então A é superlist de B
  • Se A = [] e B = [1, 2, 3], então A é sublist de B
  • Se A = [1, 2, 3] e B = [1, 2, 3, 4, 5], então A é sublist de B
  • Se A = [3, 4, 5] e B = [1, 2, 3, 4, 5], então A é sublist de B
  • Se A = [3, 4] e B = [1, 2, 3, 4, 5], então A é sublist de B
  • Se A = [1, 2, 3] e B = [1, 2, 3], então A e B são equal
  • Se A = [1, 2, 3, 4, 5] e B = [2, 3, 4], então A é superlist de B
  • Se A = [1, 2, 4] e B = [1, 2, 3, 4, 5], então A e B são unequal
  • Se A = [1, 2, 3] e B = [1, 3, 2], então A e B são unequal

Apêndice

Note

As instruções acima estão sincronizadas com um repositório partilhado para garantir a consistência entre todos os percursos de linguagens. Este apêndice fornece esclarecimentos adicionais ou modifica as instruções conforme necessário para se alinhar melhor com os objetivos do percurso de Clojure.

Neste exercício do percurso de Clojure, podes assumir que o parâmetro de entrada é um vetor, como indicam os testes.

Editar via GitHub A ligação abre numa nova janela ou separador
Clojure Exercism

Estás pronto para começar Sublista?

Inscreve-te no Exercism para aprenderes e dominares Clojure com 12 conceitos105 exercícios, e mentoria humana real, tudo grátis.