... LeetCode Solution - Strong Password Checker,
פתרון ליטקוד, LeetCode Solution,
לפתור שאלות ב LeetCode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד תכנות מחשבים, להיות מתכנת, ללמוד לתכנת, הכנה לראיון טכני, ראיון עבודה בהייטק, שאלות ליטקוד, ... הבנת השאלה ולנסות להתמקד במאמץ של מציאת התשובה. אז איך ניגשים
לפתור את זה? אז כמובן שעלינו לנסות לחלק את התהליך לחלקים כמה שיותר קטנים. ועלינו לנסות לשחק קצת עם כל מיני אפשרויות בצורה ידנית, לפני שאנחנו מנסים למצוא את החוקיות ... כך ננסה למצוא חוקיות כלשהי ובהתאם לכך, ננסה לבנות נוסחה כלשהי
לפתור את השאלה. אז בשלב הראשון, ננסה לחלק לחלקים קטנים. נתנו לנו 3 חוקים שמגדירים מהי סיסמה חזקה. עלינו לנסות להבין האם אנחנו יודעים
לפתור את השאלה, בהינתן רק חוק 1. דהיינו, במקום לנסות להבין איך
לפתור את השאלה כשיש 3 חוקים, נשאל את עצמנו את השאלה הבאה: נניח שנותנים לנו סיסמה, ויש לנו רק חוק 1 שאומר, שהסיסמה צריכה להיות בין 6 לבין 20 תווים. האם היינו יודעים ... ולכן המקרה היותר פשוט שעלינו לראות שאנחנו יודעים למצוא לו
פתרון, הוא, מה קורה אם יש רק חוק 1 שאומר, שסיסמה צריכה להיות לפחות 6 תווים. האם היינו יודעים
לפתור את המקרה הזה? וגם כאן אפשרי להתחיל מצורת שאלה עוד יותר פשוטה: נניח סיסמה חייבת להכיל לפחות תו 1 בלבד. האם היינו יודעים איך
לפתור שאלה כזו? זה המקרה הפשוט ביותר שעלינו לנסות להתחיל
לפתור ממנו. ומאחר שמטרת המאמר היא לא ללמד את
הפתרון של השאלה, אלא כן ללמד איך אפשרי למצוא את
הפתרון לשאלה. ומאחר שכדי למצוא את
הפתרון לשאלה, צריכים ללמוד לחלק לחלקים הכי קטנים שיש, לכן אני אציג כאן רצף של שאלות, מהקל אל הכבד, איך אמורים לגשת לנתח את השאלה הזאת: האם אני יודע
לפתור את השאלה במקרה שיש רק חוק 1 שאומר ש: הסיסמה צריכה להיות באורך של לפחות תו 1 הסיסמה צריכה להיות באורך של לפחות 2 תווים הסיסמה צריכה להיות באורך של לפחות 3 תווים ... צריכה להיות באורך של לפחות X תווים אם כן, אז האם אני יודע
לפתור את השאלה במידה ו: הסיסמה צריכה להיות באורך של לפחות 6 תווים ועד כאן אני מניח שהתשובה ברורה, והיא שעלינו לבדוק את אורך הסיסמה (=N) ואם אורך הסיסמה קטן מ X (אורך ... צריכה להיות באורך של לא יותר מ X תווים אם כן, אז האם אני יודע
לפתור את השאלה במידה ו: הסיסמה צריכה להיות באורך של לא יותר מ 20 תווים וגם עד כאן אני מניח שהתשובה ברורה, והיא שעלינו לבדוק את אורך הסיסמה (=N) ואם אורך הסיסמה גדול ... לסיסמה להיות תקינה כסיסמה חזקה. ועכשיו נשאל, האם אני יודע
לפתור את השאלה במידה ויש חוק 1 שאומר, שהסיסמה אסור לה להיות פחות מ X (אורך מינימלי) תווים ולא יותר מ Y (אורך מקסימאלי) תווים? וגם כאן אפשרי להניח התשובה היא שכן, אם ... להבין איך אפשרי לחלק את זה לחלקים קטנים. אז נשאל, האם אני יודע
לפתור את השאלה במידה ויש רק חוק 1 שאומר שהסיסמה צריכה להכיל אות 1 קטנה. בלי להתייחס לאות גדולה או מספר. ונחלק לחלק יותר קטן, איך נפתור את השאלה, במידה ויש חוק שאומר ... פשוט, שהסיסמה צריכה להכיל אות אחת ספציפית, כי זה מקרה שיותר קל
לפתור . כי יותר קל לדעת אם הסיסמה מכילה אות 1 ספציפית, מאשר לדעת אם הסיסמה מכילה אות 1 קטנה כלשהי. וגם יותר קל להבין שצריכים להוסיף אות 1 ספציפית אם היא חסרה, מאשר ... שסיסמה לא יכולה להכיל 3 תווים או יותר רצופים. ונשאל, האם נדע
לפתור מקרה לדוגמה שאסור שיהיה תו ספציפי רצוף, לדוגמה AAA? והתשובה היא, שאם לדוגמה יש לנו AAA עלינו או למחוק A אחד וישאר רק AA או להחליף תו אחד לדוגמה A1A או 1AA או ... רק פעולה אחת אפשרית, פעולה של מחיקה בלבד. האם היינו יודעים
לפתור את כל המצבים? האם היינו יכולים
לפתור פעולות של סיסמה קצרה? תשובה: לא. האם היינו יודעים
לפתור מצב של סיסמה ארוכה: כן. האם היינו יודעים
לפתור מצב של תווים חסרים? תשובה: לא. האם היינו יודעים
לפתור מצב של תווים רצופים? תשובה: כן. ואם היתה רק פעולה אחת אפשרית של הוספה? אז היינו יכולים
לפתור מצב של סיסמה קצרה, לא היינו יכולים
לפתור מצב של סיסמה ארוכה מידי. כן היינו יכולים
לפתור מצב של תווים חסרים או רצופים. ואם היתה רק פעולה אחת אפשרית של החלפה? אז לא היינו יכולים
לפתור בעיה של אורך. אבל כן היינו יכולים
לפתור בעיה של תווים חסרים או רצופים. ואם היו רק 2 פעולות של מחיקה והוספה? אז היינו יכולים