המשימה
כתוב פעולה שמקבלת מחסנית של מספרים שלמים ומחזירה את הערך הגדול
ביותר שבה — כשבסוף הפעולה המחסנית חוזרת למצבה המקורי, באותו סדר.
אם המחסנית ריקה — החזר 1-.
דוגמה:
מחסנית [3,9,2] (3 בראש) → 9, והמחסנית נשארת [3,9,2]
הנחיות:
• אי אפשר לקרוא איבר במחסנית בלי להוציא אותו. הוצא הכול למחסנית עזר,
ובדרך עקוב אחרי המקסימום.
• שתי העברות מחזירות את הסדר המקורי; העברה אחת בלבד הופכת אותו.
• pop על מחסנית ריקה זורק שגיאת ריצה — בדוק isEmpty לפני.
• אתחל את המקסימום לאיבר הראשון שהוצאת, לא לאפס.
ממשק מבני הנתונים כבר מצורף למשימה.
```ds:stack
{"title":"המחסנית שבדוגמה — המקסימום 9, והיא חייבת להישאר בדיוק כך","items":["2","9","3"]}
```
קוד הפתיחה
using System;
class Program {
static int MaxStack(Stack<int> st) {
// כתוב את הפתרון כאן — המחסנית חייבת לחזור למצבה המקורי
return -1;
}
static void Main() {
Stack<int> st = new Stack<int>();
st.Push(2);
st.Push(9);
st.Push(3);
Console.WriteLine(st); // [3,9,2]
Console.WriteLine(MaxStack(st)); // 9
Console.WriteLine(st); // [3,9,2] — ללא שינוי
Stack<int> neg = new Stack<int>();
neg.Push(-7);
neg.Push(-3);
Console.WriteLine(MaxStack(neg)); // -3
Console.WriteLine(MaxStack(new Stack<int>())); // -1
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.