المتسلسلة

المتسلسلة

سهل

التعليمات

إذا أُعطيتَ سلسلة نصية من الأرقام، فأخرِج جميع السلاسل النصية الفرعية المتتالية ذات الطول n فيها، بالترتيب الذي تظهر به.

فمثلًا، تحتوي السلسلة النصية "49142" على السلاسل النصية الفرعية التالية المكوّنة من 3 أرقام:

  • "491"
  • "914"
  • "142"

والسلاسل النصية الفرعية التالية المكوّنة من 4 أرقام:

  • "4914"
  • "9142"

وإذا طلبتَ سلاسل نصية مكوّنة من 6 أرقام من سلسلة نصية مكوّنة من 5 أرقام، فأنت تستحق ما يأتيك.

لاحظ أن هذه السلاسل النصية الفرعية مطلوب منها فقط أن تشغل مواضع متجاورة في المُدخل؛ ولا يلزم أن تكون الأرقام متتابعة عدديًا.

التعامل مع الحالات الطرفية

تختلف توقعات اللغات المختلفة على Exercism حول النتيجة المتوقعة عندما يكون طول السلاسل النصية الفرعية صفرًا. في مسار Rust، ليس لدينا اختبار لهذه الحالة، لذا لك الحرية في أن تفعل ما تراه الأنسب.

فكّر في مزايا وعيوب الاحتمالات التالية:

  • أن يتعطل البرنامج باستخدام panic!.
  • أن تُرجع Result::Err. (غير ممكن هنا، لأن توقيع الدالة معطى)
  • أن تُرجع متجهًا فارغًا.
  • أن تُرجع متجهًا يحتوي على عدد من السلاسل النصية الفارغة يساوي طول السلسلة النصية "digits" زائد واحد. (لهذا بعض الخصائص الرياضية الجميلة!)
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Rust Exercism

مستعد لبدء المتسلسلة؟

سجّل في Exercism لتتعلّم وتتقن Rust عبر 99 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.