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