زیرلیست

زیرلیست

متوسط

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

با توجه به دو فهرست دلخواه 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 نابرابرند

دستورالعمل‌های مخصوص مسیر

بافر لیست‌های ورودی از بایت‌های ۶۴ تا ۳۱۹ حافظه‌ی خطی استفاده می‌کند. لیست‌ها آرایه‌های بایتی هستند که مستقیماً در حافظه‌ی خطی به هم الحاق شده‌اند.

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

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

در Exercism ثبت‌نام کنید تا WebAssembly را همراه با 87 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.