Menu
CoddyTech
flag Ar iconالعربيةdown icon

Word Ladder

لديك كلمتان، beginWord وendWord، وقائمة كلمات wordList. السُّلَّم هو تسلسل من الكلمات يبدأ بـbeginWord، وينتهي بـendWord، ويتغير فيه حرف واحد بالضبط من كل كلمة إلى الكلمة التالية. يجب أن تأتي كل كلمة بعد beginWord من wordList.

أعِد عدد الكلمات في أقصر سُلَّم، مع احتساب الطرفين، أو 0 إذا لم يوجد أي سُلَّم. على سبيل المثال، cold، cord، card سُلَّم مكوَّن من 3 كلمات. ليس من الضروري أن تكون beginWord ضمن wordList، لكن يجب أن تكون endWord ضمنها.

الدالة

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
الكلمة الأولى في السُّلَّم
endWordstring
الكلمة التي يجب أن يصل إليها السُّلَّم
wordListstring-array
الكلمات التي يجب أن تأتي منها كل خطوة لاحقة
تُرجعinteger
عدد الكلمات في أقصر سلسلة، أو 0 إذا لم توجد

القيود

  • 1 ≤ beginWord.length ≤ 10
  • endWord وكل كلمة في wordList لها الطول نفسه مثل beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • تحتوي جميع الكلمات على أحرف إنجليزية صغيرة فقط.
  • beginWord != endWord
  • الكلمات الموجودة في wordList كلها مختلفة. قد تكون beginWord واحدةً منها أو لا تكون.

أمثلة

المدخلات
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
المخرجات
4
الشرح
تختلف lead وgold في ثلاثة أحرف، لذا لا يتكون أي مسار من أقل من 4 كلمات، والمسار lead وload وgoad وgold يتكون من 4 كلمات بالضبط. كما تختلف lend وlewd عن lead بحرف واحد، لكن لا يؤدي أي منهما إلى مكان جديد، ولا يمكن الوصول إلى bold إلا من gold نفسه.

lock icon+14 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

هل يمكنك إرجاع أقصر سلسلة تحويل واحدة نفسها، مع ترتيب الكلمات، وليس طولها فقط؟

إعادة ضبط الشيفرة
def ladderLength(beginWord, endWord, wordList):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

beginWord = "lead"
endWord = "gold"
wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]

المتوقع

4