Részlista

Részlista

Közepes

Utasítások

Adott két lista, A és B. Döntsd el, hogy:

  • az A lista a B listával equal; vagy
  • az A lista tartalmazza a B listát (az A a B listának a superlistje); vagy
  • az A listát tartalmazza a B lista (az A a B listának a sublistje); vagy
  • a fentiek egyike sem igaz, tehát az A és a B lista unequal

Pontosabban: az A lista akkor equal a B listával, ha mindkét listában ugyanazok az értékek ugyanabban a sorrendben szerepelnek. Az A lista akkor superlistje a B listának, ha az A tartalmaz egy, a B listával equal értékekből álló összefüggő részsorozatot. Az A lista akkor sublistje a B listának, ha a B tartalmaz egy, az A listával equal értékekből álló összefüggő részsorozatot.

Példák:

  • Ha A = [] és B = [] (mindkét lista üres), akkor az A és a B lista equal
  • Ha A = [1, 2, 3] és B = [], akkor az A a B listának a superlistje
  • Ha A = [] és B = [1, 2, 3], akkor az A a B listának a sublistje
  • Ha A = [1, 2, 3] és B = [1, 2, 3, 4, 5], akkor az A a B listának a sublistje
  • Ha A = [3, 4, 5] és B = [1, 2, 3, 4, 5], akkor az A a B listának a sublistje
  • Ha A = [3, 4] és B = [1, 2, 3, 4, 5], akkor az A a B listának a sublistje
  • Ha A = [1, 2, 3] és B = [1, 2, 3], akkor az A és a B lista equal
  • Ha A = [1, 2, 3, 4, 5] és B = [2, 3, 4], akkor az A a B listának a superlistje
  • Ha A = [1, 2, 4] és B = [1, 2, 3, 4, 5], akkor az A és a B lista unequal
  • Ha A = [1, 2, 3] és B = [1, 3, 2], akkor az A és a B lista unequal

Tippek

Az Ordering típusnak három konstruktora van: LT („kisebb, mint”), EQ („egyenlő”) és GT („nagyobb, mint”). Ezek kifejezhetik a részlista-sorrendet, ahol a Just LT jelentése „részlista”, és így tovább, a Nothing pedig azt jelenti, hogy nem részlista, nem szuperlista és nem egyenlő.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Haskell Exercism

Készen állsz elkezdeni a(z) Részlista feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Haskell nyelvet 107 feladat segítségével, valódi emberi mentorálással, mindez ingyen.