אליעד כהן
ייעוץ עסקי ואישי
בשיטת EIP
⭐⭐⭐⭐⭐
הדפסה חידת LeetCode Solution - Strong Password Checker, פתרון ליטקוד, LeetCode Solution, לפתור שאלות ב LeetCode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד...
הצטרף לחברים באתר!
שם
סיסמא
לחץ כאן
להתחבר לאתר!
💖
הספרים שמומלצים לך:
להצליח בחיים
ולהיות מאושר!






☎️
ייעוץ אישי בכל נושא!
050-3331-331
🖶 חידת LeetCode Solution - Strong Password Checker, פתרון ליטקוד, LeetCode Solution, לפתור שאלות ב LeetCode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד תכנות מחשבים, להיות מתכנת, ללמוד לתכנת, הכנה לראיון טכני, ראיון עבודה בהייטק, שאלות ליטקוד, פיתוח תוכנה, איך לכתוב קוד? ללמוד לכתוב קוד, חידות היגיון, ללמוד לחשוב, ללמוד לנתח דברים, ללמוד לפרק לגורמים, ללמוד לחלק לחלקים, ללמוד למצוא חוקיות, איך לחלק לחלקים? איך למצוא חוקיות? איך לנתח תהליכים?
והפעם נדבר על שאלת 420. LeetCode - Strong Password Checker הבאה:
A password is considered strong if the below conditions are all met:

It has at least 6 characters and at most 20 characters.

It contains at least one lowercase letter, at least one uppercase letter, and at least one digit.

It does not contain three repeating characters in a row (i.e: "Baaabb0" is weak, but "Baaba0" is strong).

Given a string password, return the minimum number of steps required to make password strong. if password is already strong, return 0.

In one step, you can:

Insert one character to password

Delete one character from password, or

Replace one character of password with another character.

Example 1:

Input: password = "a"

Output: 5

Example 2:

Input: password = "aA1"

Output: 3

Example 3:

Input: password = "1337C0d3"

Output: 0

Constraints:

1 <= password.length <= 50

password consists of letters, digits, dot '. ' or exclamation mark '! '.
אז קודם כל נסביר את השאלה שהולכת כך:

סיסמה חזקה, נחשבת לסיסמה חזקה כאשר היא עונה על התנאים הבאים:

1 - אורך הסיסמה הוא בין 6 לבין 20 תווים, לא יותר ולא פחות.

2 - הסיסמה חייבת להכיל לפחות: אות 1 קטנה (abc-z) + אות 1 גדולה (ABC-Z) + מספר 1 כלשהו (123-0).

3 - אסור שהסיסמה תכיל 3 תווים רצופים כלשהם. לדוגמה אסור שהסיסמה תהיה 123AAA4 כי האות A חוזרת על עצמה ברציפות 3 פעמים. כן מותר שהסיסמה תהיה 123Aaa4, או 12A3AA4 כי שום אות לא חוזרת על עצמה ברציפות 3 פעמים.


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

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

לדוגמה, אם הסיסמה היא A12345, אז אנחנו צריכים לעשות לפחות פעולה 1 שתגרום לכך שהסיסמה תכיל גם אות קטנה כלשהי. אם הסיסמה היא נניח 1Aa2, עלינו לבצע 2 פעולות כדי לגרום לסיסמה להיות באורך של 6 תווים.


נתון נוסף שנותנים לנו הוא, שסיסמה יכולה להיות בין אורך של 1 לאורך של 50. וגם סיסמה יכולה יכולה להכיל נקודה "." או סימן קריאה "!" כתווים חוקיים.

אז שוב השאלה היא: אנחנו מקבלים סיסמה, ועלינו לומר מהו מינימום הפעולות ההכרחי, כדי לגרום לסיסמה להיות נחשבת לסיסמה חזקה, ע"פ ההגדרות שהגדרנו לעיל. אם אין צורך לעשות פעולות כלשהן, אז נחזיר 0.

אחדד ואומר, כי בעיקרון השאלה מנוסחת בצורה פחות ברורה ממה שהצגתי לעיל, אבל כאן העדפתי לחסוך את המאמץ של הבנת השאלה ולנסות להתמקד במאמץ של מציאת התשובה.


אז איך ניגשים לפתור את זה?

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

דהיינו, קודם כל ננסה להריץ "ידנית" כל מיני סימולציות, של המקרים הפשוטים ביותר, אחר כך של מקרים יותר מורכבים. אחר כך ננסה למצוא חוקיות כלשהי ובהתאם לכך, ננסה לבנות נוסחה כלשהי לפתור את השאלה.

אז בשלב הראשון, ננסה לחלק לחלקים קטנים. נתנו לנו 3 חוקים שמגדירים מהי סיסמה חזקה. עלינו לנסות להבין האם אנחנו יודעים לפתור את השאלה, בהינתן רק חוק 1. דהיינו, במקום לנסות להבין איך לפתור את השאלה כשיש 3 חוקים, נשאל את עצמנו את השאלה הבאה:

נניח שנותנים לנו סיסמה, ויש לנו רק חוק 1 שאומר, שהסיסמה צריכה להיות בין 6 לבין 20 תווים. האם היינו יודעים כמה מינימום פעולות אנחנו צריכים לבצע כדי להפוך את הסיסמה לתקינה? וכאן אפשרי להניח שרוב האנשים יגידו שכן. כי אם אורך הסיסמה קטן מ 6 תווים, אז צריך להוסיף תווים. ואם אורך הסיסמה גדול מ 20 תווים, אז צריכים למחוק תווים.

אבל מאחר שחשוב לנו ללמוד לחלק לחלקים, אז אומר בצורה ברורה, כי מצד האמת, אפשרי לנסח את השאלה בצורה עוד יותר פשוטה. דהיינו: התנאי של אורך סיסמה חייב להיות בין 6 לבין 20, הוא תנאי מורכב ולא תנאי פשוט. התנאי היותר פשוט, הוא, אורך הסיסמה חייב להיות לפחות 6 תווים בלי מגבלה על אורך מקסימאלי.

ולכן המקרה היותר פשוט שעלינו לראות שאנחנו יודעים למצוא לו פתרון, הוא, מה קורה אם יש רק חוק 1 שאומר, שסיסמה צריכה להיות לפחות 6 תווים. האם היינו יודעים לפתור את המקרה הזה?

וגם כאן אפשרי להתחיל מצורת שאלה עוד יותר פשוטה: נניח סיסמה חייבת להכיל לפחות תו 1 בלבד. האם היינו יודעים איך לפתור שאלה כזו? זה המקרה הפשוט ביותר שעלינו לנסות להתחיל לפתור ממנו.


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

האם אני יודע לפתור את השאלה במקרה שיש רק חוק 1 שאומר ש:

הסיסמה צריכה להיות באורך של לפחות תו 1

הסיסמה צריכה להיות באורך של לפחות 2 תווים

הסיסמה צריכה להיות באורך של לפחות 3 תווים

הסיסמה צריכה להיות באורך של לפחות X תווים

אם כן, אז האם אני יודע לפתור את השאלה במידה ו:

הסיסמה צריכה להיות באורך של לפחות 6 תווים

ועד כאן אני מניח שהתשובה ברורה, והיא שעלינו לבדוק את אורך הסיסמה (=N) ואם אורך הסיסמה קטן מ X (אורך מינימאלי) תווים, הרי שזה אומר שעלינו להוסיף X-N תווים, כדי שהסיסמה תהיה תקינה. לדוגמה אם אורך הסיסמה הוא 3 דהיינו, אורך שקטן מ X=6, אז 6-3 = 3 ולכן נצטרך להוסיף 3 תווים כדי לגרום לסיסמה להיות תקינה. דהיינו, נצטרך לעשות 3 פעולות של הוספה כדי לגרום לסיסמה להיות תקינה כסיסמה חזקה.


ועכשיו ננסה להבין, האם אני יודע למצוא תשובה לשאלה, אם יש רק חוק 1 שאומר ש:

הסיסמה צריכה להיות באורך של לא יותר מ תו 1

הסיסמה צריכה להיות באורך של לא יותר מ 2 תווים

הסיסמה צריכה להיות באורך של לא יותר מ 3 תווים

הסיסמה צריכה להיות באורך של לא יותר מ X תווים

אם כן, אז האם אני יודע לפתור את השאלה במידה ו:

הסיסמה צריכה להיות באורך של לא יותר מ 20 תווים

וגם עד כאן אני מניח שהתשובה ברורה, והיא שעלינו לבדוק את אורך הסיסמה (=N) ואם אורך הסיסמה גדול מ X (אורך מקסימאלי) תווים, הרי שזה אומר שעלינו למחוק N-X תווים, כדי שהסיסמה תהיה תקינה. לדוגמה אם אורך הסיסמה הוא 33 דהיינו, אורך שגדול מ X=20, אז 33-20 = 13 ולכן נצטרך למחוק 13 תווים כדי לגרום לסיסמה להיות תקינה. דהיינו, נצטרך לעשות 13 פעולות של מחיקה כדי לגרום לסיסמה להיות תקינה כסיסמה חזקה.


ועכשיו נשאל, האם אני יודע לפתור את השאלה במידה ויש חוק 1 שאומר, שהסיסמה אסור לה להיות פחות מ X (אורך מינימאלי) תווים ולא יותר מ Y (אורך מקסימאלי) תווים?

וגם כאן אפשרי להניח התשובה היא שכן, אם יש פחות מ X(אורך מינימאלי), אז צריך להוסיף תווים. ואם יש יותר מ Y (אורך מקסימאלי) תווים, אז צריכים למחוק אותיות, כדי לגרום לסיסמה להיות תקינה.

ועד כאן בעצם היתה דוגמה לאיך לחלק לחלקים קטנים.


עכשיו נעבור לחוק מספר 2 שאומר שהסיסמה צריכה להכיל לפחות אות 1 קטנה + אות 1 גדולה + מספר 1. וננסה להבין איך אפשרי לחלק את זה לחלקים קטנים.

אז נשאל, האם אני יודע לפתור את השאלה במידה ויש רק חוק 1 שאומר שהסיסמה צריכה להכיל אות 1 קטנה. בלי להתייחס לאות גדולה או מספר.

ונחלק לחלק יותר קטן, איך נפתור את השאלה, במידה ויש חוק שאומר שהסיסמה צריכה להכיל את האות a הקטנה.

דהיינו, לא נשאל על חוק שאומר שהסיסמה צריכה להכיל אות אחת קטנה כלשהי, אלא כן נשאל על מקרה יותר פשוט, שהסיסמה צריכה להכיל אות אחת ספציפית, כי זה מקרה שיותר קל לפתור.

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

ולכן נשאל מה אם:

הסיסמה צריכה להכיל את האות a

הסיסמה צריכה להכיל את האות b

הסיסמה צריכה להכיל אות ספציפית כלשהי

ואם יש לנו תשובה, אז נשאל, מה אם:

הסיסמה צריכה להכיל אות אחת קטנה כלשהי?

והתשובה לכך היא, שעלינו לבדוק האם הסיסמה מכילה אות 1 קטנה כלשהי. ואם לא, אז עלינו להוסיף אות 1 קטנה כלשהי, או עלינו להחליף אות אחת קיימת, לאות 1 קטנה כלשהי.

דהיינו, במקרה כזה לדוגמה A123456, עלינו או להוסיף אות אחת לדוגמה a קטנה aA123456 או להחליף לאות 1 קטנה לדוגמה כך Aa23456 ובשני המקרים הסיסמה תהיה תקינה.

דהיינו, אם חסרה לנו אות 1 קטנה, אז עלינו לבצע פעולה 1 של הוספה של אות קטנה או פעולה 1 של החלפה של אות כלשהי, לאות קטנה, כדי שהסיסמה תהיה חוקית.


ומה אם הסיסמה צריכה להכיל אות 1 גדולה? ומה אם הסיסמה צריכה להכיל ספרה אחת כלשהי? אז אם יש לנו תשובה גם לזה, אז נשאל מה אם:

הסיסמה צריכה להכיל את האות a הקטנה ואת האות A הגדולה?

ואם הסיסמה צריכה להכיל אות 1 קטנה כלשהי ואות אחת גדולה כלשהי?

ואם הסיסמה צריכה להכיל אות אחת קטנה כלשהי אות אחת גדולה כלשהי וספרה אחת כלשהי?

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


אז מי שיתבונן יראה, כי חוק מספר 2 שאומר שהסיסמה צריכה להכיל אות 1 קטנה גדולה וספרה, בעצם אומר ש:

עלינו לבדוק האם חסרה אות קטנה / גדולה / מספר, ואז עלינו להוסיף או להחליף אותיות בהתאם לצורך שלנו. לדוגמה 123456 יכול להפוך להיות 123456Aa או יכול להיות 12345Aa או יכול להיות 1234Aa וכולי.


ועכשיו נעבור לחוק מספר 3 שאומר, שסיסמה לא יכולה להכיל 3 תווים או יותר רצופים. ונשאל, האם נדע לפתור מקרה לדוגמה שאסור שיהיה תו ספציפי רצוף, לדוגמה AAA?

והתשובה היא, שאם לדוגמה יש לנו AAA עלינו או למחוק A אחד וישאר רק AA או להחליף תו אחד לדוגמה A1A או 1AA או AA1 ועכשיו הסיסמה תהיה תקינה. או להוסיף תו אחד לדוגמה A1AA או AA1A, שגם כך הסיסמה הופכת להיות תקינה.

ואם יש לנו 4 תווים רצופים, לדוגמה AAAA עלינו או למחוק 2 תווים ונקבל AA. או להוסיף תו אחד לדוגמה AA1AA או להחליף תו אחד לדוגמה A1AA או AA1A ואז הסיסמה תהיה תקינה.

ואם יש לנו 5 תווים רצופים, לדוגמה AAAAA עלינו או למחוק 3 תווים, ונקבל AA או להוסיף 2 תווים לדוגמה AA1AA2A או להחליף תו אחד דהיינו, AA1AA וככה הסיסמה תהיה תקינה.

ואם יש לנו 6 תווים רצופים, לדוגמה AAAAAA אז עלינו או למחוק 4 או להוסיף 2 ל AA1AA2AA או להחליף 2 כך AA2AA1 וכיו"ב.

ואם יש לנו 7 לדוגמה AAAAAAA אז עלינו או למחוק 5 או להוסיף 3 כך: AA2AA3AA1A או להחליף 2 כך: AA1AA2A.

ואם יש לנו 8 לדוגמה AAAAAAAA אז עלינו או למחוק 6 או להוסיף 3 כך: AA2AA3AA1AA או להחליף 2 כך: AA1AA2AA

וכך עלינו להמשיך ולבדוק ידנית עוד מקרים, מבחינתי עד 20 תווים רצופים, שזה המספר המקסימאלי של התווים שהסיסמה יכולה להכיל.


ועכשיו עלינו לבצע עוד סוג של בדיקות ידניות, ולחלק לחלקים בצורה הבאה:

נניח שהיתה רק פעולה אחת אפשרית, פעולה של מחיקה בלבד. האם היינו יודעים לפתור את כל המצבים? האם היינו יכולים לפתור פעולות של סיסמה קצרה? תשובה: לא. האם היינו יודעים לפתור מצב של סיסמה ארוכה: כן. האם היינו יודעים לפתור מצב של תווים חסרים? תשובה: לא. האם היינו יודעים לפתור מצב של תווים רצופים? תשובה: כן.

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

ואם היתה רק פעולה אחת אפשרית של החלפה? אז לא היינו יכולים לפתור בעיה של אורך. אבל כן היינו יכולים לפתור בעיה של תווים חסרים או רצופים.

ואם היו רק 2 פעולות של מחיקה והוספה? אז היינו יכולים לפתור את כל המצבים. ואם היו רק 2 פעולות של מחיקה והחלפה? לא היינו יכולים לפתור מצב של סיסמה קצרה מידי.

או במילים אחרות ננסה לבדוק את כל החוקים ואת כל המצבים, במקרה שיש רק פעולה אחת אפשרית של הוספה או מחיקה או החלפה. ובמקרה שיש רק 2 פעולות אפשריות, של הוספה + מחיקה או הוספה + החלפה או מחיקה + החלפה בלבד. וכמובן גם במקרה שיש 3 פעולות אפשריות, של מחיקה או הוספה או החלפה.


אז מה בעצם עשינו עד כה?

עד כה שיחקנו ידנית עם כל מיני מקרים שונים, וניסינו לחלק את התהליך לחלקים ולמקרים פשוטים. מה לא ניסינו לעשות, לא ניסינו למצוא חוקיות, לא ניסינו למצוא נוסחה.

או במילים אחרות, קודם כל צריכים לנסות לראות אם יודעים לפתור את השאלה, במקרה הפשוט ביותר, בלי שום חוקיות, בלי שום נוסחה, בלי שום מורכבות.

רק אחרי שאנחנו מסוגלים לפתור את השאלה ידנית, בלי חוקיות, בלי נוסחה בלי כלום, במקרה הכי פשוט. עכשיו ננסה לפתור את השאלה בצורה קצת יותר מורכבת.


אז האם אנחנו נדע לפתור את השאלה במידה ויש לנו 2 חוקים שהם:

1 - האורך חייב להיות בין X לבין Y

2 - הסיסמה חייבת להכיל אות קטנה / גדולה / מספר

במידה ואלו 2 החוקים שנותנים לנו, האם נדע לפתור את השאלה?

ומה אם היו לנו את 2 החוקים הבאים:

1 - האורך חייב להיות בין X לבין Y

2 - אסור שתו יחזור על עצמו 3 פעמים או יותר

ומה אם היו לנו את 2 החוקים הבאים:

1 - הסיסמה חייבת להכיל אות קטנה / גדולה / מספר

2 - אסור שתו יחזור על עצמו 3 פעמים או יותר


ומה אם היו לנו את 3 החוקים המלאים:

1 - האורך חייב להיות בין X לבין Y

2 - הסיסמה חייבת להכיל אות קטנה / גדולה / מספר

3 - אסור שתו יחזור על עצמו 3 פעמים או יותר

עכשיו כמובן שהעלילה מתחילה להסתבך... איך ניגשים לזה? איך פותרים את זה?

כמובן, ש... איך פותרים את זה ידנית. בלי נוסחאות ובלי סיבוכים, ננסה קודם כל להבין איך פותרים את זה ידנית.

האם קודם מתחילים מחוק מספר 1 או 2 או 3? מה קדם למה?


אז לשם כך ננסה שוב להתחיל הכל מהתחלה, וננסה להבין האם בכל האפשרויות יש משהו שהוא בטוח נכון.

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

אם האורך צריך להיות 6, אז בטוח נכון שאם יש פחות מ 6 תווים, אז בטוח נכון שעלינו לבצע 6-N פעולות של הוספה. לדוגמה, אם יש לנו 3 תווים, אז בוודאות של מאה אחוז, שעלינו לבצע 3 פעולות של הוספה כדי שהסיסמה תהיה באורך של 6.

דהיינו, יש לנו וודאות של מאה אחוז

1 - גם לגבי כמות הפעולות שאנחנו צריכים לבצע, כי אנחנו בוודאות צריכים לבצע 3 פעולות.

2 - וגם יש לנו וודאות של מאה אחוז, לגבי סוג הפעולות שאנחנו צריכים לבצע, כי אנחנו צריכים לבצע בוודאות פעולות של הוספה ולא של מחיקה או של החלפה.

ואם הסיסמה ארוכה מ 20 לדוגמה היא באורך של 5, אז יש לנו וודאות של מאה אחוז שאנחנו צריכים לבצע 5 פעולות מסוג פעולה של מחיקה.

דהיינו, בדיקת החוק של האורך, נותן לנו וודאות גם לגבי כמות הפעולות שצריכים לבצע וגם לגבי סוג הפעולות שצריכים לבצע, כדי להתאים את הסיסמה לחוק של האורך.


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

ואם חסר לנו אות גדולה + מספר, הרי שבוודאות עלינו לבצע 2 פעולות. אבל הן יכולות להיות או 2 פעולות הוספה או 2 פעולות החלפה או 1 פעולה הוספה + 1 פעולת החלפה וכולי.

במילים אחרות, החוק השני של תווים הכרחיים, נותן לנו וודאות לגבי כמות פעולות שצריכים לבצע, אבל משאיר לנו ספק לגבי סוג הפעולות שצריכים לבצע.


ועכשיו נעבור לחוק 3 שאסור שיהיו 3 תווים רצופים. ואם נחקור אותו נראה, כי הוא משאיר לנו ספק, גם לגבי כמות הפעולות וגם לגבי סוג הפעולות.

לדוגמה במקרה של 8 תווים רצופים לדוגמה כך: AAAAAAAA, אז הרי שעלינו

או לבצע 6 פעולות של מחיקה

או לבצע 3 פעולות של הוספה

או לבצע 2 פעולות של החלפה

דהיינו, יש לנו וודאות כלשהי, אבל הכי פחות וודאות. גם לגבי כמות הפעולות וגם לגבי סוג הפעולות.


במילים אחרות אנחנו מבינים, שהחוק של האורך התקין, מספק לנו הכי הרבה וודאות. אחר כך יש לנו את החוק של התווים ההכרחיים, אחר כך החוק של האותיות הרצופות, שמספק לנו הכי פחות וודאות והכי הרבה ספקות ואפשרויות.

אז מה בעצם זה אומר לנו?

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


מהי החוקיות של הפעולות עצמן? מה היחס ביניהן?

ואם נעמיק עוד קצת לגבי הפעולות האפשריות לתקן סיסמה, וננסה לשאול את עצמנו, אם יכולנו לבחור פעולה אחת או 2 פעולות בלבד, מה היינו בוחרים? האם יש פעולה שעדיפה על פעולות אחרות? אם נחקור את הנושא נראה ש:

בשביל סיסמה שתהיה באורך לפחות 6, חייבים פעולה של הוספה ואך ורק פעולה של הוספה.

בשביל סיסמה שתהיה לא יותר מאורך של 20, חייבים פעולה של מחיקה ואך ורק פעולה של מחיקה.

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

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

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

דהיינו, תווים רצופים, בברירת המחדל, נעדיף לפתור אותו עם פעולת החלפה, שדורשת הכי פחות פעולות.


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

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


אז לכאורה פתרנו את השאלה. כי בעצם עלינו קודם כל לבדוק את האורך של הסיסמה. אחר כך לבדוק תווים חסרים ואחר כך לבדוק תווים רצופים. לדוגמה:

נניח שהסיסמה היא AAA אז:

מהחוק של האורך אנחנו יודעים בוודאות שאנחנו צריכים לבצע 3 פעולות של הוספה.

מהחוק של התווים החסרים, אנחנו יודעים בוודאות שאנחנו צריכים לבצע 2 פעולות של הוספה או של החלפה.

ומהחוק של התווים הרצופים, אנחנו יודעים בוודאות שאנחנו צריכים לבצע פעולה 1 של החלפה / הסרה / מחיקה.

ומאחר שבטוח נכון שאנחנו צריכים לבצע 3 פעולות של הוספה, בגלל חוק האורך, הרי שבעצם ב 3 פעולות של הוספה, נוכל גם להתאים את הסיסמה לחוק של התווים החסרים וגם של התווים הרצופים. לדוגמה כך: AaAA12.

דהיינו, ב 3 פעולות של הוספה, גם תיקנו את הסיסמה לאורך של 6 גם הוספנו אות קטנה ומספר, וגם ביטלנו את ה 3 אותיות הרצופות.

במילים אחרות, מצב של AAA נפתור אותו ב 3 פעולות.


ואם יש לנו סיסמה באורך של 25 אותיות, לדוגמה ABABABAAAAABABABABAB12345.

אז בוודאות שאנחנו צריכים לעשות 5 פעולות מחיקה בגלל האורך.

+ פעולת החלפה או הוספה 1 של אות קטנה.

+ בגלל שיש בתוך הסיסמה 5 אותיות רצופות של AAAAA אז אנחנו צריכים לעשות או 5 פעולות מחיקה או 2 פעולות הוספה או 1 פעולת החלפה.

ולכן, נעשה 5 פעולות מחיקה להתאים את האורך

+ פעולה 1 של החלפה, כדי להוסיף אות קטנה ולא פעולה של הוספה, כדי לא לפגוע באורך

+ ב 5 הפעולות מחיקה הקודמות, נוכל למחוק את כל רצף האותיות הנ"ל.

דהיינו, סה"כ נצטרך 6 פעולות בלבד. 5 של מחיקה + 1 של החלפה.


אז מהי מהות הפתרון עד כה?

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

דהיינו, אם חובה לבצע פעולות מחיקה בגלל האורך, נוכל באמצעותן למחוק אותיות רצופות.

אם חובה לבצע פעולות הוספה בגלל האורך, נוכל באמצעות פעולות ההוספה לתקן בהתאם לתווים חסרים או רצופים.

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

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

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

ונשתמש בפעולת המחיקה, כדי לתקן את האורך וגם כדי לפתור אותיות רצופות. ומכאן ואילך, נספור רק פעולות של החלפה בלבד. כדי שלא בטעות נשבש את האורך של הסיסמה וגם כי החלפה יותר יעילה עבור התיקון של אותיות...
מהקל אל הכבד ללמוד לחשוב למצוא הפשוט ביותר חייב להיות מה קדם למה ראיונות מדעי המחשב ליטקוד סימולציות מה בטוח נכון leetcode leetcode solution איך לחלק לחלקים איך לכתוב איך לכתוב קוד איך למצוא איך למצוא חוקיות איך לנתח איך לנתח תהליך איך לנתח תהליכים גורמים היגיון הייטק הכנה לראיון הכנה לראיון טכני חוקיות חידה חידות חידות היגיון חידת leetcode חידת היגיון חשיבה מדעית טכני כיצד לנתח לגורמים להיות מתכנת להתראיין לחלק לחלקים לחשוב ליטקוד לכתוב לכתוב קוד ללמוד ללמוד לחלק ללמוד לחלק לחלקים ללמוד לחשוב ללמוד לכתוב ללמוד לכתוב קוד ללמוד למצוא ללמוד למצוא חוקיות ללמוד לנתח ללמוד לנתח דברים ללמוד לפרק ללמוד לפרק לגורמים ללמוד לתכנת ללמוד תכנות ללמוד תכנות מחשבים למידה למצוא למצוא חוקיות לנתח לנתח דברים לנתח תהליך לנתח תהליכים לעבוד לעבוד בהייטק לפרק לפרק לגורמים לפתור לפתור שאלות לפתור שאלות ב leetcode לפתח לראיין לראיין עובד לראיין עובדים לשאול לשאול שאלות לתכנת מדע מדעי המחשב עבודה עבודה בהייטק פיתוח פיתוח תוכנה פתרון פתרון ליטקוד ראיון ראיון טכני ראיון עבודה ראיון עבודה בהייטק ראיונות שאלה שאלות שאלות ליטקוד תהליך תהליכים תכנות תכנות מחשבים
איך לגרום למישהו להסכים איתך? ניהול דיונים, איך ליצור הסכמה? איך יוצרים הסכמה? איך לגרום למישהו להבין אותך? איך לפרק לגורמים רעיון מורכב? לא מסכימים על שום דבר, איך לגרום לה להסכים איתך? איך לגרום לו להסכים איתך? איך להסביר את עצמי?
איך לגרום למישהו להסכים איתך? ניהול דיונים, איך ליצור הסכמה? איך יוצרים הסכמה? איך לגרום למישהו להבין אותך? איך לפרק לגורמים רעיון מורכב? לא מסכימים על שום דבר, איך לגרום לה להסכים איתך? איך לגרום לו להסכים איתך? איך להסביר את עצמי?
... לגרום למישהו להסכים איתך? ניהול דיונים, איך ליצור הסכמה? איך יוצרים הסכמה? איך לגרום למישהו להבין אותך? איך לפרק לגורמים רעיון מורכב? לא מסכימים על שום דבר, איך לגרום לה להסכים איתך? איך לגרום לו להסכים איתך? איך להסביר את עצמי? איך לגרום למישהו להסכים איתך במהלך דיון? ... שכאשר אדם אומר משפט כמו יש פה שולחן, הוא צריך להבין תחילה מה הסיבות שבגללן הוא חושב את המחשבה הזו. לדבריו, כדי שמישהו יסכים איתך, אתה צריך לפרק את הרעיון שלך לחלקים קטנים ככל הניתן, ולהגיע להסכמה על כל אחד מהחלקים בנפרד. למשל, כשאתה אומר למישהו: אתה מסכים איתי שיש פה שולחן?, והוא לא מסכים או לא מבין אותך, אתה צריך לבדוק מה בדיוק אתה אומר כאן ולמה אתה חושב כך. אתה צריך לקחת את הטענה יש פה שולחן ולפרק אותה לחלקים קטנים. אפשר להתחיל בלמה אני חושב שיש פה שולחן? - אולי מפני שאני רואה אותו, מפני שאפשר לגעת בו, או מכל סיבה אחרת. על כל אחת מהסיבות האלה, צריך לבדוק האם הצד ... אם גם כאן הוא לא מסכים, צריך לקחת עוד צעד אחורה ולבדוק על מה כן יש הסכמה, עד שמוצאים נקודה משותפת שממנה אפשר להתקדם. מדוע אנשים לא אוהבים לפרק רעיונות לחלקים? אליעד מסביר שרוב האנשים נמנעים מלפרק את הטענות שלהם לחלקים קטנים משום שזה חושף אותם. אם הטענה שלך נכונה באופן מוחלט וברור לך איך אתה יודע אותה, אז יהיה לך קל לפרק אותה לחלקים ולהסביר. אבל אם אינך בטוח בעצמך או אינך יודע איך אתה יודע את הטענה שלך, אתה תעדיף לא לפרק, כי אז אתה חושף את החולשה בטענה שלך. לדוגמה, אם הטענה שלך היא אני יודע שיש פה שולחן כי אני רואה אותו, אתה עלול לחשוש לשאול עוד שאלות כמו איך אני יודע שמה שאני רואה ... אחד מסוים. במקום זאת, אתה צריך ללמד אותו איך לחשוב בצורה נכונה - על ידי כך שאתה לוקח את התהליך ופורס אותו לשלבים קטנים ומובנים. כך הוא יוכל לפתור גם שאלות אחרות בהמשך. אליעד מציין שלפי רבי נחמן מברסלב, ככל שרעיון יותר מורכב, כך צריך לחלק אותו ליותר הקדמות, והיכולת להסביר רעיון תלויה בהבנה שלך איך הגעת אליו. רק מי שמבין לגמרי איך הוא יודע משהו, יוכל לפרק את זה ולהסביר את זה לאחרים. אם יש שלב שלא ברור לך, אתה לא תוכל להסביר אותו לאחרים. כיצד לנהוג כאשר אדם אומר לא הבנתי? כאשר מישהו אומר לך שהוא לא הבין את מה שאמרת, אליעד ... בדיוק שמעת שאמרתי?, בלי פרשנויות. כך תוכל לגלות האם הוא לא הבין את המילים עצמן או שהוא לא הבין את הכוונה שלהן. אחרי שהבהרתם את זה, אפשר להמשיך לפרק את הרעיון לחלקים קטנים יותר. מה הקשר בין סיבתיות לטיפול בהפרעות נפשיות? אליעד כהן מוסיף שבמצבים של הפרעות נפשיות, כשנדמה שאין שום הסכמה אפילו על דברים בסיסיים, חייבים למצוא לפחות נקודת הסכמה אחת, אפילו קטנה מאוד. ברגע שמוצאים נקודה כזו, ניתן לפרק את חוסר ההסכמה בצורה שיטתית, ולמצוא בדיוק איפה הנקודה שהאדם אינו מסכים עליה. זיהוי מדויק של נקודה זו מאפשר להתחיל לתקן את התפיסות המוטעות או השונות ולהגיע להבנה טובה יותר. לסיום, אליעד מדגיש שכדי להצליח בכל התהליך הזה, אדם צריך לתרגל באופן קבוע ניתוח סיבתיות עם עצמו - כך הוא יידע טוב יותר להסביר לאחרים ולפרק רעיונות בצורה ברורה ופשוטה. איך לגרום למישהו להסכים איתי? איך להסביר רעיון מורכב? מהי שיטת הפירוק לחלקים? למה אנשים לא מבינים אותי? איך מנהלים דיון נכון? מה עושים כשאין ...
איך לפתור בעיות מורכבות? איך למצוא תשובות לשאלות מורכבות? איך לפתור בעיות קשות? איך לפרק לגורמים בעיה? מה זה פירוק לגורמים? איך למצוא את הנחות היסוד של השאלה? איך לפתור בעיות מסובכות? איך לפרק בעיה לגורמים?
איך לפתור בעיות מורכבות? איך למצוא תשובות לשאלות מורכבות? איך לפתור בעיות קשות? איך לפרק לגורמים בעיה? מה זה פירוק לגורמים? איך למצוא את הנחות היסוד של השאלה? איך לפתור בעיות מסובכות? איך לפרק בעיה לגורמים?
איך לפתור בעיות מורכבות? איך למצוא תשובות לשאלות מורכבות? איך לפתור בעיות קשות? איך לפרק לגורמים בעיה? מה זה פירוק לגורמים? איך למצוא את הנחות היסוד של השאלה? איך לפתור בעיות מסובכות? איך לפרק בעיה לגורמים? איך לפתור בעיות מורכבות? איך למצוא תשובות לשאלות מורכבות? איך לפרק בעיה לגורמים? ההרצאה עוסקת בשאלות כיצד להתמודד עם בעיות מורכבות ולמצוא תשובות לשאלות קשות. אליעד כהן מציע גישה מסודרת לפתרון בעיות על ידי פירוקן לגורמים קטנים יותר, על מנת למצוא את התשובות המתאימות. התחלה עם רשימת שאלות השלב הראשון בפתרון בעיות הוא לאסוף ... נתחיל בשאלה אחת, ואז נבצע סדר בהמשך על ידי פירוק השאלות לגורמים. פירוק שאלה אחת לשאלות פשוטות יותר במקום להתמודד עם שאלה רחבה ומורכבת, כדאי לשאול האם ניתן לפרק אותה לשאלות פשוטות יותר. לדוגמה, אם יש שאלה מסובכת על הנחות יסוד מסוימות, עליך להבין את כל חלקי השאלה. ... רבות תלויות בהנחות יסוד שאותן חשוב להבהיר. האם ניתן לפרק שאלה מורכבת לגורמים? כאשר יש שאלה מורכבת, לא תמיד ניתן לפשט אותה. במקרים כאלה, השאלה המורכבת חייבת להיות מנותחת באופן ... ולמצוא פתרונות עקביים. פתרון בעיות מורכבות? פירוק בעיה לגורמים? הנחות יסוד של השאלה? הסדר החשיבתי בפתרון בעיות? איך להתמודד עם שאלות רבות? ...
מה זה אינטלקטואל? דוגמה לפירוק בעיה לגורמים, איך לנתח בעיה לגורמים? איך לפרק שאלה לתתי שאלות? איך להפוך שאלה מורכבת לשאלה פשוטה? איך לפרק לגורמים שאלה? איך למצוא תשובות לשאלות מורכבות? פתרון בעיות מסובכות
מה זה אינטלקטואל? דוגמה לפירוק בעיה לגורמים, איך לנתח בעיה לגורמים? איך לפרק שאלה לתתי שאלות? איך להפוך שאלה מורכבת לשאלה פשוטה? איך לפרק לגורמים שאלה? איך למצוא תשובות לשאלות מורכבות? פתרון בעיות מסובכות
... זה אינטלקטואל? דוגמה לפירוק בעיה לגורמים, איך לנתח בעיה לגורמים? איך לפרק שאלה לתתי שאלות? איך להפוך שאלה מורכבת לשאלה פשוטה? איך לפרק לגורמים שאלה? איך למצוא תשובות לשאלות מורכבות? פתרון בעיות ... מדובר רק בהגדרה בסיסית, אלא בשאלה שדורשת התעמקות ויכולת לפרק אותה לגורמים. אליעד מסביר שברגע שנשאלת שאלה כזו, ... הרגיל של שכל, אלא מושג שדורש הבנה עמוקה יותר, וצריך לפרק את השאלה כך שנוכל לנתח את כל הרכיבים שלה. איך לפרק בעיה לגורמים? אליעד מציין שלפני שניתן תשובה לשאלה מהו אינטלקטואל, חשוב לפתח את היכולת לפרק את הבעיה לגורמים. אם לא מבינים את המונח או את השאלה, השלב הראשון הוא לבדוק אם אפשר לפרק את המילה או את המושג לגורמים . לדוגמה, אם נשאלת השאלה מה זה ... בשאלות ובבעיות מסובכות. אם לא נפרק את השאלה או הבעיה לגורמים, לא נוכל להגיע לפתרון אמיתי ומעמיק. ... שמובילים לפתרון בצורה מעמיקה ומסודרת. מהו אינטלקט? איך לפרק שאלה לגורמים? מהו אינטלקטואל? איך למצוא תשובות לשאלות מורכבות? פתרון בעיות מסובכות שיטות לפירוק בעיה לגורמים
חידת LeetCode Solution - Minimum Reverse Operations, פתרון ליטקוד, LeetCode Solution, איך לפתור שאלות ב LeetCode? איך לפתור חידת LeetCode? מדעי המחשב, תכנות מחשבים, איך להתקבל לעבוד בהייטק? איך ללמוד תכנות מחשבים? איך להיות מתכנת? איך לעבור ראיון טכני? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? איך לעבוד בפיתוח תוכנה? איך להתכונן לראיונות כתיבת קוד? איך לפתור חידת היגיון? חידות היגיון
חידת leetcode solution - Minimum Reverse Operations, פתרון ליטקוד, leetcode solution, איך לפתור שאלות ב leetcode? איך לפתור חידת leetcode? מדעי המחשב, תכנות מחשבים, איך להתקבל לעבוד בהייטק? איך ללמוד תכנות מחשבים? איך להיות מתכנת? איך לעבור ראיון טכני? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? איך לעבוד בפיתוח תוכנה? איך להתכונן לראיונות כתיבת קוד? איך לפתור חידת היגיון? חידות היגיון והפעם נדבר על שאלת 2612. leetcode - Minimum Reverse Operations הבאה: You are given an integer n and an integer p in the range (0, n - 1). Representing a 0-indexed ... עצמה לא מנוסחת בצורה ברורה, זאת בעיה שלך. כי בעולם האמיתי, לא תמיד השאלה ברורה. והשאלה הספציפית הזאת, נחשבת באתר ליטקוד לשאלה די קשה, אפילו להבנה. ולכן קודם כל נבין את השאלה. You are given an integer n and an integer p in the range (0, n - 1). נתון לך ... N-1, דהיינו, שהוא יהיה באותו האורך בדיוק של המערך ARR. כאשר בתוך המערך ANS, אנחנו צריכים בכל אחד מהמקומות שבו, לכתוב את מינימום פעולות ההיפוך הנדרשות, לצורך הבאת הערך 1 למיקום החדש. ואם אין אפשרות להביא את הערך 1 למיקום במערך ANS, אז באותו מיקום ... פעולות היפוך. ואת התשובה לכך, אנחנו צריכים להחזיר בתוך מערך ANS. דהיינו, במערך ANS, בכל מקום בתוכו, אנחנו נצטרך לכתוב, בכמה מינימום פעולות היפוך ניתן להזיז את 1 מנקודת ההתחלה שלו, למערך ARR במקום 0 ובמקום 1 ובמקום 2 וכולי, עד לסוף המערך. ואם הערך 1 לא ... בשם Banned שאומרת, שלכאן הערך 1 לא יכול להגיע בשום שלב. ועכשיו אחרי שהבנו את השאלה, עכשיו כמובן נשאל, איך ניגשים לפתור את השאלה הזאת? אז ננסה להפוך את השאלה הנל לשאלה יותר קלה. ואיך? אז קודם כל ננסה לפתור את השאלה, במקרה פשוט שבו אין ערכים של Banned כלשהם. כי תמיד צריכים להתחיל מהמקרה הפשוט ביותר, דהיינו, בלי Banned. ועכשיו אני אעשה דילוג קטן, לכיוון אפשרי לפתור את הבעיה הזאת, ואחר כך אסביר איך באמת לגשת לפתרון של הבעיה הזאת. אז לכאורה הדרך לפתרון היא פשוטה ביותר. עלינו לקחת את המערך ARR ואת ... לבדוק את כל האפשרויות האפשריות, היא מאוד גדולה וכולי. ולכן כמובן שאנחנו מחפשים פתרון יותר יעיל וקצר. אז איך ניגשים לנתח את השאלה הזאת? אז תמיד לעולמי עולמים, עלינו לנסות לפרק את השאלה, לחלקים הקטנים ביותר שיש ולחפש את המקרה הפשוט ביותר והקל ביותר. וכדי לפתור את השאלה, עלינו לנסות להבין את החוקיות של מה שקורה כאן, על ידי ניתוח של המקרה הקל ביותר, אל המקרה הקשה יותר. ולנסות
חידת LeetCode Solution - Trapping Rain Water, פתרון ליטקוד, LeetCode Solution, איך לפתור שאלות ב LeetCode? איך לפתור חידת LeetCode? מדעי המחשב, תכנות מחשבים, איך להתקבל לעבוד בהייטק? איך ללמוד תכנות מחשבים? איך להיות מתכנת? איך לעבור ראיון טכני? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? איך לעבוד בפיתוח תוכנה? איך להתכונן לראיונות כתיבת קוד? איך לפתור חידת היגיון? חידות היגיון
חידת leetcode solution - Trapping Rain Water, פתרון ליטקוד, leetcode solution, איך לפתור שאלות ב leetcode? איך לפתור חידת leetcode? מדעי המחשב, תכנות מחשבים, איך להתקבל לעבוד בהייטק? איך ללמוד תכנות מחשבים? איך להיות מתכנת? איך לעבור ראיון טכני? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? איך לעבוד בפיתוח תוכנה? איך להתכונן לראיונות כתיבת קוד? איך לפתור חידת היגיון? חידות היגיון והפעם נדבר על שאלת 42. leetcode - Trapping Rain Water הבאה: Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much ... 2) לבין העמוד ה11 (שבגובה 2) תהיה כלואה קוביית מים 1. דהיינו, סהכ 6 קוביות מים. אז איך ניגשים לפתור את השאלה הזאת? בהינתן לנו רשימת גבהים של עמודים, איך נוכל לדעת כמה מים יכנסו בין העמודים האלו? איך ניגשים לזה? אז בתור התחלה ננסה לחלק את ... עמוד. אנחנו אמורים לחשב את הכמות הכללית של כל המים שיכולים להיות כלואים בין העמודים. אז בעצם כדי לפתור את השאלה הזאת, לשם כך יש לנו לבצע כמה שלבים. שלב 1 יהיה לחשב האם וכמה מים נכנסים במקום של כל עמוד (דהיינו מעל כל עמוד). השלב ה 2 יהיה לסכום ... מעל כל עמוד? אז כדי לדעת מה גובה מפלס המים המקסימאלי האפשרי מעל כל עמוד, לשם כך נצטרך לדעת את החוקיות של מפלס המים. איך היא עובדת? במה תלוי גובה מפלס המים האפשרי בכל נקודה? אז כמובן שיש לנו את חוק כלים שלובים, שאומר שפני המים תמיד יהיו באותו ... הנוסחה לכך? אז איך יודעים מהי הנוסחה לחשב את גובה פני המים האפשרי בכל נקודה? לשם כך ננסה שוב לחלק לחלקים ולחפש את המקרה הפשוט ביותר וכך ננסה להבין את החוקיות. אז מהו המקרה הפשוט ביותר? המקרה הפשוט ביותר הוא כאשר אין שום עמודים כלשהם. (0,0,0,0,0,0) כמה מים כלואים יהיו במקרה כזה? תשובה: 0. ועכשיו ... נשמע הגיוני. כי כדי לאגור מים צריך 2 עמודים שיחזיקו ביניהם את המים. עכשיו כדי לנסות להבין את החוקיות של גובה האפשרי של מפלס המים, נלך למקרה קצת יותר מורכב, שבו יש לנו 2 עמודים צמודים אחד לשני באותו הגובה. לדוגמה 2 עמודים בגובה 100. ... כמה מים יאגרו במקרה הזה? התשובה תהיה 50. כי במקום שאין עמוד, מפלס המים יהיה 50. אז מהי החוקיות שגילינו עד עכשיו? חוקיות 1 היא, שהגובה של מפלס המים תלוי בגובה של העמודים. חוקיות 2 היא, שהמים שנאגרים, ייאגרו רק בין עמודים בלבד. אבל כמובן שאנחנו צריכים לנסות להבין חוקיות יותר מדוייקת. ולכן ננסה להתקדם למקרה יותר מורכב. מה לדוגמה יקרה במקרה שמייצג 2 עמודים, עמוד ראשון בגובה של 100 ועמוד שני בגובה של 50, שיש ...
חידת LeetCode Solution - Candy, פתרון ליטקוד, LeetCode Solution, איך לפתור שאלות ב LeetCode? איך לפתור חידת LeetCode? מדעי המחשב, תכנות מחשבים, איך להתקבל לעבוד בהייטק? איך ללמוד תכנות מחשבים? איך להיות מתכנת? איך לעבור ראיון טכני? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? איך לעבוד בפיתוח תוכנה? איך להתכונן לראיונות כתיבת קוד? איך לפתור חידת היגיון? חידות היגיון, איך לעבור ראיון עבודה טכני?
חידת leetcode solution - Candy, פתרון ליטקוד, leetcode solution, איך לפתור שאלות ב leetcode? איך לפתור חידת leetcode? מדעי המחשב, תכנות מחשבים, איך להתקבל לעבוד בהייטק? איך ללמוד תכנות מחשבים? איך להיות מתכנת? איך לעבור ראיון טכני? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? איך לעבוד בפיתוח תוכנה? איך להתכונן לראיונות כתיבת קוד? איך לפתור חידת היגיון? חידות היגיון, איך לעבור ראיון עבודה טכני? והפעם נדבר על שאלת 135. leetcode - Candy הבאה: There are n children standing in a line. Each child is assigned a rating value given in the integer array ratings. You are ... מספר שונה של סוכריות, בהתאם למי שהם עומדים לידו. אז איך בעצם ניגשים לפתור את השאלה הזאת? אז בעצם יש לנו כאן 2 תהליכים. תהליך 1 הוא לחשב מה מינימום הסוכריות שצריך לקבל כל ילד. תהליך 2 הוא לחשב כמה סהכ סוכריות ... איך מחשבים את זה? איך ניגשים לזה? אז כאשר אנחנו מנתחים את הדרך לפתור את השאלה הזאת, עלינו לשאול את השאלה הבאה והיא: מה בטוח נכון, האם יש משהו שהוא בטוח נכון? מהו המקרה הקטן שהוא בטוח נכון? האם יש משהו אפילו ... עד שלא היתה לנו וודאות לגבי כל הערכים שקטנים מהמקום ה 9, לא יכולנו לפתור אותו. ואם נמשיך כך, אז קיבלנו את הרשימה הבאה: מקום 01 (דירוג 7 = כמות 2) מקום 02 (דירוג 6 = כמות 1) מקום 03 (דירוג 6 = כמות 4) מקום 04 ... שלידו, ולכן הוא יקבל 4. כמו שהיה לנו קודם עם מקום 9. אז האם הצלחנו לפתור את התרגיל לפי הנוסחה האחרונה? כן. האם זה יעבוד במאה אחוז מהמקרים? כן. אז מהי הנוסחה? הנוסחה היא, קודם כל לבדוק מה בטוח נכון, ומשם להתקדם ... בצורה יותר יעילה. לסיכום: חפש את נקודת הוודאות הקטנה ביותר ומשם תתחיל לפתור את התרגיל בדרך כלשהי, גם אם היא אינה יעילה. אל תחשוב על יעילות אלא על משהו וודאי גם אם הוא אינו יעיל. מכאן להתקדם לנסות לשפר יעילות ...
ליטקוד, LeetCode Solution, איך לפתור שאלות ב LeetCode? ראיונות קוד, תרגול ליטקוד, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ראיון טכני, שאלות חשיבה, איך לפתור בעיות מורכבות? איך לפתח את המוח? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? לעבוד בפיתוח תוכנה, איך למצוא מה בטוח נכון? ללמוד לנתח תהליכים, איך ללמוד לתכנת? איך ללמוד לכתוב קוד? כתיבת קוד, לפתור חידות היגיון, איך להבין חוקיות? איך למצוא חוקיות?
ליטקוד, leetcode solution, איך לפתור שאלות ב leetcode? ראיונות קוד, תרגול ליטקוד, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ראיון טכני, שאלות חשיבה, איך לפתור בעיות מורכבות? איך לפתח את המוח? איך להתכונן לראיון עבודה בהייטק? תרגול שאלות ליטקוד כהכנה לראיון, איך להיות מתכנת מחשבים? לעבוד בפיתוח תוכנה, איך למצוא מה בטוח נכון? ללמוד לנתח תהליכים , איך ללמוד לתכנת? איך ללמוד לכתוב קוד? כתיבת קוד, לפתור חידות היגיון, איך להבין חוקיות? איך למצוא חוקיות? אז מה זה ליטקוד leetcode? ליטקוד, זה שם של אתר אינטרנט, שמציג שאלות מראיונות עבודה למשרות של פיתוח תוכנה ותכנות. בעיות שונות בכתיבת קוד וכיוב. לפי ... מי שמלטקד לא מפחד. דהיינו, מי שרגיל לפתור שאלות ליטקוד, לא מפחד מראיונות עבודה. בפועל אנשים שרוצים לעבוד בהייטק במשרות של פיתוח, בדרך כלל הם יתרגלו שאלות ליטקוד, כדי להתכונן לראיונות עבודה. למה
חידת LeetCode Solution - Block Placement Queries, פתרון ליטקוד, LeetCode Solution, לפתור שאלות ב LeetCode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד תכנות מחשבים, להיות מתכנת, ללמוד לתכנת, הכנה לראיון טכני, ראיון עבודה בהייטק, שאלות ליטקוד, פיתוח תוכנה, איך לכתוב קוד? ללמוד לכתוב קוד, חידות היגיון, ללמוד לחשוב, ללמוד לנתח דברים, ללמוד לפרק לגורמים, ללמוד לחלק לחלקים, ללמוד למצוא חוקיות, איך לחלק לחלקים? איך למצוא חוקיות? לנתח תהליכים
חידת leetcode solution - Block Placement Queries, פתרון ליטקוד, leetcode solution, לפתור שאלות ב leetcode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד תכנות מחשבים, להיות מתכנת, ללמוד לתכנת, הכנה לראיון טכני, ראיון עבודה בהייטק, שאלות ליטקוד, פיתוח תוכנה, איך לכתוב קוד? ללמוד לכתוב קוד, חידות היגיון, ללמוד לחשוב, ללמוד לנתח דברים, ללמוד לפרק לגורמים, ללמוד לחלק לחלקים, ללמוד למצוא חוקיות, איך לחלק לחלקים? איך למצוא חוקיות? לנתח תהליכים והפעם נדבר על שאלת 3161. leetcode - Block Placement Queries הבאה: There exists an infinite number line, ... עבור כל אחת מהשאילתות מסוג 2 כנל. ולכאורה, זאת התשובה לשאלת הליטקוד הזאת, היא מאוד מאוד מאוד פשוטה. כי בתכלס, אפשרי לקחת נייר ולרשום את כל ... X, האם יש את הרוחב הרצוי להצבת הבלוק. כך שמצד האמת, התשובה לשאלת ליטקוד הזאת היא מאוד פשוטה. אז מהי בעצם השאלה? ולמה השאלה הזאת, נחשבת לשאלת ליטקוד מאוד מאוד קשה? והתשובה היא, שעיקר השאלה היא, איך לעשות את החישובים הנל ... של הפתרון. אבל אני כן אציג בדרך של מחויב ואפשרי, מה בטוח נכון, לחלק לחלקים וכולי, כיצד ניתן לפתור את השאלה הזאת... אז איך ניגשים לשאלה הזאת? איך מנסים למצוא פתרון יותר ... כל מיני תהליכים שונים. כמו כן אציין, שיש כל מיני מקרי קצה, שאפשרי לפתור אותם יחסית בקלות, אבל אני בוחר שלא להתייחס אליהם כרגע. לדוגמה, שלא משנה ... ביותר, לעדכן את המידע הזה. אז איך ניגשים לזה? אז כדי לדעת איך לפתור את הבעיה, לשם כך עלינו לנסות לחלק את הבעיה לחלקים הכי קטנים שיש, לחפש מה ...
חידת LeetCode Solution - Minimum Cost to Equalize Array, פתרון ליטקוד, LeetCode Solution, לפתור שאלות ב LeetCode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד תכנות מחשבים, להיות מתכנת, ללמוד לתכנת, הכנה לראיון טכני, ראיון עבודה בהייטק, שאלות ליטקוד, פיתוח תוכנה, איך לכתוב קוד? ללמוד לכתוב קוד, חידות היגיון, ללמוד לחשוב, ללמוד לנתח דברים, ללמוד לפרק לגורמים, ללמוד לחלק לחלקים, ללמוד למצוא חוקיות, איך לחלק לחלקים? איך למצוא חוקיות? לנתח תהליכים
חידת leetcode solution - Minimum Cost to Equalize Array, פתרון ליטקוד, leetcode solution, לפתור שאלות ב leetcode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד תכנות מחשבים, להיות מתכנת, ללמוד לתכנת, הכנה לראיון טכני, ראיון עבודה בהייטק, שאלות ליטקוד, פיתוח תוכנה, איך לכתוב קוד? ללמוד לכתוב קוד, חידות היגיון, ללמוד לחשוב, ללמוד לנתח דברים, ללמוד לפרק לגורמים, ללמוד לחלק לחלקים, ללמוד למצוא חוקיות, איך לחלק לחלקים? איך למצוא חוקיות? לנתח תהליכים והפעם נדבר על שאלת 3139. leetcode - Minimum Cost to Equalize Array הבאה: You are ... המספר הגדול ביותר ברשימה. עלינו לעשות זאת באמצעות פעולת הוספה של הערך 1, לכל אחד מהמספרים, עד שניישר קו של כל המספרים. נעצור כאן לרגע אחד. האם עד כאן היינו יודעים איך לנתח את המצב הזה? תשובה: כנראה שכן. בתור התחלה, ... מיישרים קו של כל המספרים. עכשיו, נניח שהיו אומרים לנו, שלכל פעולת הוספה, יש מחיר1 כלשהו. והיו שואלים אותנו, כמה יעלה לנו להגדיל את כל המספרים? האם היינו יודעים לפתור את זה? תשובה: כן. היינו פשוט סופרים את כל ... דהיינו, עלינו לבצע 9 הגדלות, כדי ליישר את כל הערכים כלפי מעלה. במילים אחרות, על ידי ניסוי ידני כמה פעמים של פתירת התרגיל הנל, ניתן לראות שבזמן ריצה O(N) ניתן לפתור את התרגיל הנל, כנל. שניתן בריצה אחת, לאתר את ... וחילקנו אותה לחלקים. התחלנו במקרה שהוא יחסית קל, שבו יש לנו רק מחיר1 ועלינו לחשב את מחיר1 בלבד. וראינו שבעצם ניתן לעשות זאת בזמן ריצה שהוא O(N). ועכשיו נמשיך לחלק לחלקים ונעבור לחלק קצת יותר קשה של השאלה, והוא, ... פעמים ניתן לבצע פעולת הגדלה כפולה, שבה בבת אחת מגדילים שני מספרים בערך 1, עד שכל המספרים מגיעים לערך הגבוה ביותר. האם נדע איך לחשב את זה? כי אם לא, אז ממילא לא נוכל לפתור את השאלה הגדולה. אז איך בעצם יודעים כמה פעמים ניתן לבצע הגדלה כפולה, דהיינו, שמגדילים שני ערכים בבת אחת? תשובה: נגיע לזה בהמשך. אבל כרגע נחזור לנתח את השאלה המקורית. אז בעצם עד כה, היה לנו תהליך ... בהינתן לנו מחיר1 שהוא עלות של הגדלה בודדת ובהינתן לנו מחיר2 שהוא עלות של הגדלה כפולה, אז, מה יהיה המחיר המינימאלי שנוכל לשלם, כדי להגדיל את כל המספרים. ואיך ניגשים לפתור את החלק הזה של השאלה? אז לשם כך לכאורה בעצם ...
ספרים מומלצים עבורך - ספרים על חידת LeetCode Solution - Strong Password Checker, פתרון ליטקוד, LeetCode Solution, לפתור שאלות ב LeetCode, מדעי המחשב, תכנות מחשבים, לעבוד בהייטק, ללמוד תכנות מחשבים, להיות מתכנת, ללמוד לתכנת, הכנה לראיון טכני, ראיון עבודה בהייטק, שאלות ליטקוד, פיתוח תוכנה, איך לכתוב קוד? ללמוד לכתוב קוד, חידות היגיון, ללמוד לחשוב, ללמוד לנתח דברים, ללמוד לפרק לגורמים, ללמוד לחלק לחלקים, ללמוד למצוא חוקיות, איך לחלק לחלקים? איך למצוא חוקיות? איך לנתח תהליכים?
 👈1 ב 150  👈4 ב 400     ☎️ 050-3331-331    שליח עד אליך - בחינם!
להיות אלוהים, 2 חלקים - הספר על: פתרון ל..., למה יש רע בעולם? האם לדומם יש תודעה? מי ברא את אלוהים? האם המציאות היא טובה או רעה? האם באמת הכל לטובה? למה העולם קיים? למה יש רע וסבל בעולם? איך להיות הכי חכם בעולם? מה יש מעבר לזמן ולמקום? האם יש בחירה חופשית? בשביל מה לחיות? האם אפשר לדעת הכל? איך נוצר העולם? מה המשמעות של החיים? למה חוקי הפיזיקה כפי שהם? איך להנות בחיים? למה לא להתאבד? איך נוצר העולם? האם הכל אפשרי? איך להשיג שלמות ואושר מוחלט? מהי תכלית ומשמעות החיים? האם יש או אין אלוהים? אולי אנחנו במטריקס? איך להיות מאושר? האם יש אמת מוחלטת? האם יש משמעות לחיים? איך נוצרים רצונות / מחשבות / רגשות? האם יש נשמה וחיים אחרי המוות? האם יש חיים מחוץ לכדור הארץ ויקומים מקבילים? מה יש מעבר לשכל וללוגיקה? האם יש הבדל בין חלום למציאות ועוד...

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

שקט נפשי אמיתי - הספר על: איך להתמודד עם אכזבות? איך להתמודד עם לחץ? איך להתמודד עם הזיות / דמיונות שווא / פרנויות / סכיזופרניה / הפרעת אישיות גבולית? איך להתמודד עם אהבה אובססיבית? כעס ועצבים? מועקות נפשיות וייאוש? איך להתמודד עם הפרעות קשב וריכוז? איך להשיג איזון נפשי? איך להתמודד עם בדידות? איך להתמודד עם שמיעת קולות בראש? איך להתמודד עם טראומה ופוסט טראומה? איך להתמודד עם חרדות + פחדים של ילדים? איך להתמודד עם הפרעות התנהגות אצל ילדים? איך להתמודד עם כל סוגי הפחדים והחרדות שיש? איך להתמודד עם בעיות ריכוז והפרעת קשב וריכוז? איך להתמודד עם תסמינים של חרדה? איך לשכוח אקסים ולא להתגעגע? איך להתמודד עם רגשות אשם ושנאה עצמית? איך להתמודד עם התקפי חרדה ופאניקה? איך להתמודד עם OCD / הפרעה טורדנית כפייתית / אובססיות / התנהגות כפייתית? איך להתמודד עם ביישנות וחרדה חברתית? איך להתמודד עם חלומות מפחידים וסיוטים בשינה? איך להתמודד עם מאניה דיפרסיה ועם מצבי רוח משתנים? איך להתמודד עם עצבות? איך להתמודד עם פחד קהל ופחד במה / פחד להתחיל עם בחורות / פחד להשתגע / פחד לאבד שליטה / חרדת נטישה / פחד מכישלון / פחד מוות / פחד ממחלות / פחד לקבל החלטה / פחד ממחויבות / פחד מבגידה / פחד מיסטי / פחד ממבחנים / חרדה כללית / פחד לא ידוע / פחד מפיטורים / פחד ממכירות / פחד מהצלחה / פחד לא הגיוני ועוד? דיכאון ועוד...
רק כאן באתר! ✨ להנאתך, 10,000+ שעות של תכנים בלעדיים! ✨ מאת אליעד כהן!
לפניך חלק מהנושאים שבאתר... מה מעניין אותך?

חפש:   מיין:

האתר www.EIP.co.il נותן לך תכנים בנושא קאוצינג מומלץ, מנטור, טיפול נפשי בנושאי פתרון ל - ללא הגבלה! לקביעת פגישה אישית / ייעוץ טלפוני אישי / הזמנת הספרים - צור/י עכשיו קשר: 050-3331-331
© כל הזכויות שמורות לאתר www.EIP.co.il בלבד!
מומלץ ביותר, לצטט תוכן מהאתר במקומות שונים,
ובתנאי שתמיד יצורף קישור לכתובת שבה מופיע התוכן המקורי ולאתר.
האתר פותח על ידי אליעד כהן
דף זה הופיע ב 0.1875 שניות - עכשיו 24_05_2025 השעה 14:15:53 - wesi1