Menu
CoddyTech

Longest Common Subsequence

בינוניתכנון דינמיpython iconjava iconcpp iconc iconjs icon+10

נתונות לך שתי מחרוזות, text1 ו-text2. תת־רצף של מחרוזת שומר על חלק מהאותיות שלה בסדר המקורי שלהן ומשמיט את השאר; האותיות שנשמרו אינן חייבות להיות סמוכות. החזר את אורכה של המחרוזת הארוכה ביותר שהיא תת־רצף של שתיהן, או 0 אם אין לשתי המחרוזות אות משותפת.

פונקציה

longestCommonSubsequence(text1: string, text2: string) → integer
text1string
המחרוזת הראשונה
text2string
המחרוזת השנייה
מחזירהinteger
האורך של תת־הסדרה המשותפת הארוכה ביותר

אילוצים

  • 1 ≤ text1.length ≤ 1000
  • 1 ≤ text2.length ≤ 1000
  • שתי המחרוזות מכילות רק אותיות קטנות באנגלית.

דוגמאות

קלט
text1 = "stone"text2 = "longest"
פלט
3
הסבר
האותיות o, n, e מופיעות בסדר הזה בשתי המילים, ולכן one היא תת־רצף משותפת באורך 3. במילה longest האותיות s ו־t מופיעות בסוף, ואילו במילה stone הן מופיעות בהתחלה, ולכן תת־רצף משותפת שמשתמשת בהן יכולה להיות רק st, שהיא קצרה יותר.

lock icon+19 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

האם תוכל להחזיר תת־רצף משותף ארוך ביותר אחד עצמו, ולא רק את אורכו?

איפוס הקוד
def longestCommonSubsequence(text1, text2):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

text1 = "stone"
text2 = "longest"

צפוי

3