Menu
CoddyTech

Longest Substring Without Repeating Characters

חפש במחרוזת רצפים של תווים עוקבים שבהם כל תו מופיע פעם אחת בלבד. ב־coddycode, הרצף ycode כולל חמישה תווים שונים, ואין רצף ארוך יותר שאין בו חזרה, לכן התשובה היא 5.

בדיקה של כל הרצפים האפשריים עובדת, אבל היא איטית. דרך מהירה יותר שומרת על חלון בין שתי עמדות שאף פעם לא מכיל תו שחוזר על עצמו. הזז את הקצה הימני תו אחד בכל פעם. כשהתו החדש כבר נמצא בתוך החלון, הקפץ את הקצה השמאלי למקום שאחרי המקום שבו התו הזה נראה קודם. זכירת המיקום האחרון של כל תו הופכת את הקפיצה הזאת למיידית, כך שהמחרוזת נקראת פעם אחת בלבד.

כתבו פונקציה בשם lengthOfLongestSubstring שמקבלת מחרוזת s ומחזירה את האורך של תת־המחרוזת הארוכה ביותר (רצף של תווים עוקבים) שבה אף תו לא מופיע יותר מפעם אחת.

אותיות גדולות וקטנות הן תווים שונים, לכן a ו-A אינן חזרה על אותו תו.

אילוצים: 1 <= s.length <= 5 * 10^4. s מכילה רק אותיות באנגלית (קטנות וגדולות) וספרות.

פונקציה

lengthOfLongestSubstring(arg1: string) → integer
arg1string
מחזירהinteger

דוגמאות

קלט
arg1 = "coddycode"
פלט
5

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

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

מקרה 1

מקרה 2

מקרה 3

קלט

arg1 = "coddycode"

צפוי

5