Subarray

Subarray

Medio

Istruzioni

Date due liste qualsiasi A e B, stabilisci se:

  • la lista A è uguale alla lista B; oppure
  • la lista A contiene la lista B (A è una superlista di B); oppure
  • la lista A è contenuta nella lista B (A è una sottolista di B); oppure
  • nessuna delle precedenti è vera, quindi le liste A e B sono diverse

In particolare, la lista A è uguale alla lista B se entrambe le liste hanno gli stessi valori nello stesso ordine. La lista A è una superlista di B se A contiene una sottosequenza contigua di valori uguale a B. La lista A è una sottolista di B se B contiene una sottosequenza contigua di valori uguale a A.

Esempi:

  • Se A = [] e B = [] (entrambe le liste sono vuote), allora A e B sono uguali
  • Se A = [1, 2, 3] e B = [], allora A è una superlista di B
  • Se A = [] e B = [1, 2, 3], allora A è una sottolista di B
  • Se A = [1, 2, 3] e B = [1, 2, 3, 4, 5], allora A è una sottolista di B
  • Se A = [3, 4, 5] e B = [1, 2, 3, 4, 5], allora A è una sottolista di B
  • Se A = [3, 4] e B = [1, 2, 3, 4, 5], allora A è una sottolista di B
  • Se A = [1, 2, 3] e B = [1, 2, 3], allora A e B sono uguali
  • Se A = [1, 2, 3, 4, 5] e B = [2, 3, 4], allora A è una superlista di B
  • Se A = [1, 2, 4] e B = [1, 2, 3, 4, 5], allora A e B sono diverse
  • Se A = [1, 2, 3] e B = [1, 3, 2], allora A e B sono diverse

Appendice

Note

Le istruzioni sopra sono sincronizzate con un repository condiviso per garantire coerenza tra tutti i track linguistici. Questa appendice fornisce chiarimenti aggiuntivi o modifica le istruzioni secondo necessità, per allinearsi meglio agli obiettivi del track di Clojure.

Per questo esercizio nel track di Clojure, puoi presumere che l'input sia un vector, come indicano i test.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Clojure Exercism

Vuoi iniziare Subarray?

Iscriviti a Exercism per imparare e padroneggiare Clojure con 12 concetti105 esercizi e il mentoring di persone reali, tutto gratis.