Menu
CoddyTech

Word Ladder

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

أعِد عدد الكلمات في أقصر تسلسل، مع احتساب الطرفين، أو 0 إذا لم يوجد أي تسلسل.

الدالة

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 فهما طريقان مسدودان.
challenge icon

سؤال إضافي

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

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

اختبار #1

اختبار #2

اختبار #3

الوسائط

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

الإخراج المتوقع

4