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

Registos

Registo Utilização Tipo Descrição
$a0 entrada endereço elementos do array um
$a1 entrada inteiro tamanho do array um, em palavras
$a2 entrada endereço elementos do array dois
$a3 entrada inteiro tamanho do array dois, em palavras
$v0 saída inteiro 0 = igual, 1 = diferente, 2 = sublista, 3 = superlista
$t0-9 temporário qualquer usado para armazenamento temporário
Editar via GitHub A ligação abre numa nova janela ou separador
MIPS Assembly Exercism

Estás pronto para começar Sublista?

Inscreve-te no Exercism para aprenderes e dominares MIPS Assembly com 70 exercícios, e mentoria humana real, tudo grátis.