الأناغرام

الأناغرام

متوسط

مقدمة

في سوقٍ لبيع المستعملات، تجد آلة كاتبة قديمة أنيقة بسعر زهيد! وبكل حماس، تسرع إلى المنزل، وتُدخل ورقة، وتبدأ الكتابة. لكن حماسك يخبو عندما تتفقد الناتج: كل الكلمات مشوّشة! فعلى سبيل المثال، تطبع "stop" بدل "post" و"least" بدل "stale". وتحاول مرة أخرى بعناية، لكنها الآن تطبع "spot" و"slate". وبعد بعض التجارب، تكتشف أن هناك تأخيرًا عشوائيًا قبل طباعة كل حرف، وهو ما يُفسد الترتيب. الآن تفهم لماذا باعوها بهذا الثمن البخس!

وتُدرك أن هذه الخصلة الغريبة تتيح لك توليد الأناغرام، وهي كلمات تتكوّن بإعادة ترتيب حروف كلمة أخرى. وسعيدًا باكتشافك، تقضي بقية يومك في توليد مئات الأناغرامات.

التعليمات

مهمتك هي أن تجد، عند إعطائك كلمة هدف ومجموعة من الكلمات المرشحة، المجموعة الفرعية من المرشحين التي تُعدّ أناغرامات للكلمة الهدف.

الأناغرام هو إعادة ترتيب الحروف لتكوين كلمة جديدة: على سبيل المثال، "owns" هو أناغرام لكلمة "snow". الكلمة ليست أناغرامًا لنفسها: على سبيل المثال، "stop" ليست أناغرامًا لكلمة "stop".

الكلمة الهدف والكلمات المرشحة كلمات مكونة من حرف أبجدي ASCII واحد أو أكثر (A-Z و a-z). الحروف الصغيرة والكبيرة متكافئة: على سبيل المثال، "PoTS" هو أناغرام لكلمة "sTOp"، لكن StoP ليس أناغرامًا لكلمة sTOp. مجموعة الأناغرامات هي المجموعة الفرعية من مجموعة المرشحين التي تُعدّ أناغرامات للكلمة الهدف (بأي ترتيب). يجب أن تحافظ الكلمات في مجموعة الأناغرامات على حالة الحروف نفسها كما في مجموعة المرشحين.

إذا كانت الكلمة الهدف هي "stone" والمرشحون هم "stone" و "tones" و "banana" و "tons" و "notes" و "Seton"، فإن مجموعة الأناغرامات هي "tones" و "notes" و "Seton".

ملاحظات خاصة بالمسار

يجب أن تُرجع الأناغرامات بالترتيب نفسه الذي ترد به في الكلمات المرشحة.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Scheme Exercism

مستعد لبدء الأناغرام؟

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