Menu
CoddyTech

Is Subsequence

נתונות לך שתי מחרוזות, s ו-t. החזר true אם אפשר להפוך את t ל-s על ידי מחיקת חלק מהאותיות שלה (ייתכן שאף אחת), כך שהאותיות שנותרו ישמרו על הסדר שלהן, ו-false אחרת. לדוגמה, ace היא תת-רצף של abcde, אבל aec אינה.

פונקציה

isSubsequence(s: string, t: string) → boolean
sstring
המחרוזת שאותה מחפשים
tstring
המחרוזת שממנה יש למחוק אותיות
מחזירהboolean
אמת אם אפשר לקרוא את s בתוך t לפי הסדר, אולי עם פערים

אילוצים

  • 1 ≤ s.length ≤ 3 × 104
  • 1 ≤ t.length ≤ 5 × 104
  • s ו־t מכילים אותיות אנגליות קטנות בלבד.

דוגמאות

קלט
s = "ace"t = "abcde"
פלט
true
הסבר
מחקו את b ואת d מתוך abcde, ונשאר ace באותו סדר.

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

challenge icon

שאלת המשך

נניח ש-t נשארת ללא שינוי, ועליך לבדוק מיליון מחרוזות שונות s מולה. איך תכין את t כך שכל בדיקה תהיה מהירה יותר מקריאה מחדש של כל t?

איפוס הקוד
def isSubsequence(s, t):
    # כתבו כאן קוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

s = "ace"
t = "abcde"

צפוי

true