Sublista

Sublista

Médio

Instruções

Dadas duas listas quaisquer, A e B, determine se:

  • A lista A é igual à lista B; ou
  • A lista A contém a lista B (A é uma superlista de B); ou
  • A lista A está contida na lista B (A é uma sublista de B); ou
  • Nenhuma das opções acima é verdadeira, portanto, as listas A e B são diferentes

Especificamente, a lista A é igual à lista B se as duas listas tiverem os mesmos valores na mesma ordem. A lista A é uma superlista de B se A contiver uma subsequência contígua de valores igual a B. A lista A é uma sublista de B se B contiver uma subsequência contígua de valores igual a A.

Exemplos:

  • Se A = [] e B = [] (as duas listas estão vazias), então A e B são iguais
  • Se A = [1, 2, 3] e B = [], então A é uma superlista de B
  • Se A = [] e B = [1, 2, 3], então A é uma sublista de B
  • Se A = [1, 2, 3] e B = [1, 2, 3, 4, 5], então A é uma sublista de B
  • Se A = [3, 4, 5] e B = [1, 2, 3, 4, 5], então A é uma sublista de B
  • Se A = [3, 4] e B = [1, 2, 3, 4, 5], então A é uma sublista de B
  • Se A = [1, 2, 3] e B = [1, 2, 3], então A e B são iguais
  • Se A = [1, 2, 3, 4, 5] e B = [2, 3, 4], então A é uma superlista de B
  • Se A = [1, 2, 4] e B = [1, 2, 3, 4, 5], então A e B são diferentes
  • Se A = [1, 2, 3] e B = [1, 3, 2], então A e B são diferentes

Anexo

Note

As instruções acima são sincronizadas com um repositório compartilhado para garantir consistência entre todas as trilhas de linguagens. Este anexo traz esclarecimentos adicionais ou modifica as instruções conforme necessário para se alinhar melhor aos objetivos da trilha de Clojure.

Neste exercício da trilha de Clojure, você pode assumir que a entrada é um vector, como os testes indicam.

Editar via GitHub O link abre em uma nova janela ou aba
Clojure Exercism

Tudo pronto para começar Sublista?

Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 exercícios e mentoria humana de verdade, tudo de graça.