زیرلیست

زیرلیست

متوسط

دستورالعمل‌ها

با توجه به دو فهرست دلخواه A و B، مشخص کنید که:

  • فهرست A با فهرست B برابر است؛ یا
  • فهرست A شامل فهرست B است (A «ابرفهرست» B است)؛ یا
  • فهرست A در فهرست B قرار دارد (A «زیرفهرست» B است)؛ یا
  • هیچ‌کدام از موارد بالا درست نیست، پس فهرست‌های A و B نابرابرند

به‌طور خاص، اگر هر دو فهرست مقادیر یکسانی را به همان ترتیب داشته باشند، فهرست A با فهرست B برابر است. اگر A زیردنباله‌ای پیوسته از مقادیر برابر با B را در خود داشته باشد، فهرست A ابرفهرست B است. اگر B زیردنباله‌ای پیوسته از مقادیر برابر با A را در خود داشته باشد، فهرست A زیرفهرست B است.

مثال‌ها:

  • اگر A = [] و B = [] (هر دو فهرست خالی باشند)، آنگاه A و B برابرند
  • اگر A = [1, 2, 3] و B = []، آنگاه A ابرفهرست B است
  • اگر A = [] و B = [1, 2, 3]، آنگاه A زیرفهرست B است
  • اگر A = [1, 2, 3] و B = [1, 2, 3, 4, 5]، آنگاه A زیرفهرست B است
  • اگر A = [3, 4, 5] و B = [1, 2, 3, 4, 5]، آنگاه A زیرفهرست B است
  • اگر A = [3, 4] و B = [1, 2, 3, 4, 5]، آنگاه A زیرفهرست B است
  • اگر A = [1, 2, 3] و B = [1, 2, 3]، آنگاه A و B برابرند
  • اگر A = [1, 2, 3, 4, 5] و B = [2, 3, 4]، آنگاه A ابرفهرست B است
  • اگر A = [1, 2, 4] و B = [1, 2, 3, 4, 5]، آنگاه A و B نابرابرند
  • اگر A = [1, 2, 3] و B = [1, 3, 2]، آنگاه A و B نابرابرند

پیوست

Note

دستورهای بالا با یک مخزن مشترک همگام‌سازی شده‌اند تا در همه‌ی trackهای زبان‌ها یکدستی حفظ شود. این پیوست، در صورت نیاز، توضیح بیشتری می‌دهد یا دستورها را تغییر می‌دهد تا با اهداف track کلوژر هم‌راستاتر شود.

برای این تمرین در track کلوژر، می‌توانید فرض کنید ورودی یک بردار است، همان‌طور که تست‌ها نشان می‌دهند.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Clojure Exercism

آماده‌اید زیرلیست را شروع کنید؟

در Exercism ثبت‌نام کنید تا Clojure را همراه با 12 مفهوم105 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.