Υπολίστα

Υπολίστα

Μέτριο

Οδηγίες

Δεδομένων δύο λιστών A και B, προσδιόρισε αν:

  • Η λίστα A είναι equal με τη λίστα B, ή
  • Η λίστα A περιέχει τη λίστα B (η A είναι superlist της B), ή
  • Η λίστα A περιέχεται από τη λίστα B (η A είναι sublist της B), ή
  • Καμία από τις παραπάνω δεν ισχύει, οπότε οι λίστες A και B είναι unequal

Συγκεκριμένα, η λίστα A είναι equal με τη λίστα B αν και οι δύο λίστες έχουν τις ίδιες τιμές στην ίδια σειρά. Η λίστα A είναι superlist της B αν η A περιέχει μια συνεχόμενη υποακολουθία τιμών ίσων με τη B. Η λίστα A είναι sublist της B αν η B περιέχει μια συνεχόμενη υποακολουθία τιμών ίσων με τη A.

Παραδείγματα:

  • Αν A = [] και B = [] (και οι δύο λίστες είναι κενές), τότε οι A και B είναι equal
  • Αν A = [1, 2, 3] και B = [], τότε η A είναι superlist της B
  • Αν A = [] και B = [1, 2, 3], τότε η A είναι sublist της B
  • Αν A = [1, 2, 3] και B = [1, 2, 3, 4, 5], τότε η A είναι sublist της B
  • Αν A = [3, 4, 5] και B = [1, 2, 3, 4, 5], τότε η A είναι sublist της B
  • Αν A = [3, 4] και B = [1, 2, 3, 4, 5], τότε η A είναι sublist της B
  • Αν A = [1, 2, 3] και B = [1, 2, 3], τότε οι A και B είναι equal
  • Αν A = [1, 2, 3, 4, 5] και B = [2, 3, 4], τότε η A είναι superlist της B
  • Αν A = [1, 2, 4] και B = [1, 2, 3, 4, 5], τότε οι A και B είναι unequal
  • Αν A = [1, 2, 3] και B = [1, 3, 2], τότε οι A και B είναι unequal

Υποδείξεις

Ο τύπος Ordering έχει τρεις κατασκευαστές, LT ("μικρότερο από"), EQ ("ίσο") και GT ("μεγαλύτερο από"). Αυτά μπορούν να αναπαραστήσουν τη διάταξη υπολίστας με το Just LT να σημαίνει "υπολίστα", και ούτω καθεξής, και το Nothing να σημαίνει ότι δεν είναι υπολίστα, υπερλίστα ή ίση.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Haskell Exercism

Έτοιμος να ξεκινήσεις την άσκηση Υπολίστα;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Haskell με 107 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.