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. האותיות s ו־t מופיעות בסוף longest אך בתחילת stone, ולכן השימוש בהן נותן לכל היותר st.
challenge icon

שאלת המשך

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

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

text1 = "stone"
text2 = "longest"

הפלט הצפוי

3