Sublista

Sublista

Intermedia

Instrucciones

Dadas dos listas cualesquiera A y B, determina si:

  • La lista A es igual a la lista B; o
  • La lista A contiene la lista B (la lista A es una superlista de B); o
  • La lista A está contenida en la lista B (la lista A es una sublista de B); o
  • Ninguna de las anteriores es verdadera, así que las listas A y B no son iguales

En concreto, la lista A es igual a la lista B si ambas listas tienen los mismos valores en el mismo orden. La lista A es una superlista de B si A contiene una subsecuencia contigua de valores igual a B. La lista A es una sublista de B si B contiene una subsecuencia contigua de valores igual a A.

Ejemplos:

  • Si A = [] y B = [] (ambas listas están vacías), entonces A y B son iguales
  • Si A = [1, 2, 3] y B = [], entonces A es una superlista de B
  • Si A = [] y B = [1, 2, 3], entonces A es una sublista de B
  • Si A = [1, 2, 3] y B = [1, 2, 3, 4, 5], entonces A es una sublista de B
  • Si A = [3, 4, 5] y B = [1, 2, 3, 4, 5], entonces A es una sublista de B
  • Si A = [3, 4] y B = [1, 2, 3, 4, 5], entonces A es una sublista de B
  • Si A = [1, 2, 3] y B = [1, 2, 3], entonces A y B son iguales
  • Si A = [1, 2, 3, 4, 5] y B = [2, 3, 4], entonces A es una superlista de B
  • Si A = [1, 2, 4] y B = [1, 2, 3, 4, 5], entonces A y B no son iguales
  • Si A = [1, 2, 3] y B = [1, 3, 2], entonces A y B no son iguales

Registros

Registro Uso Tipo Descripción
$a0 entrada dirección elementos del array uno
$a1 entrada entero tamaño del array uno, en palabras
$a2 entrada dirección elementos del array dos
$a3 entrada entero tamaño del array dos, en palabras
$v0 salida entero 0 = igual, 1 = distinto, 2 = sublista, 3 = superlista
$t0-9 temporal cualquiera se usa para almacenamiento temporal
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
MIPS Assembly Exercism

¿Todo listo para empezar Sublista?

Regístrate en Exercism para aprender y dominar MIPS Assembly con 70 ejercicios y mentoría humana real, todo gratis.