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