תרגול מדעי המחשב

חישוב ביטוי בכתיב פולני הפוך

מאתגר Java

המשימה

בכתיב פולני הפוך (Postfix) האופרטור נכתב **אחרי** שני האופרנדים שלו,
ולכן אין צורך בסוגריים כלל.

דוגמאות:
  "23+"     =  2+3           =  5
  "23+5*"   =  (2+3)*5       =  25
  "52-3*"   =  (5-2)*3       =  9
  "7"       =  7

כתוב פעולה שמקבלת מחרוזת כזו ומחזירה את ערכה.
המחרוזת מכילה ספרות בודדות 0-9 והאופרטורים + - *, בלי רווחים.

הנחיות:
• עבור על התווים משמאל לימין. ספרה — דוחפים למחסנית.
  אופרטור — מוציאים **שניים**, מחשבים, ודוחפים את התוצאה בחזרה.
• סדר האופרנדים חשוב: האיבר שיצא ראשון הוא הימני. עבור "52-" יוצא
  קודם 2 ואז 5, והחישוב הוא 5-2 ולא 2-5.
• המרת תו לספרה: c - '0'.
• בסוף הביטוי נשאר במחסנית איבר אחד — הוא התשובה.

ממשק מבני הנתונים כבר מצורף למשימה.

```ds:table
{"title":"מעקב עבור \"23+5*\"","rows":[["תו","פעולה","המחסנית אחרי"],["2","push 2","2"],["3","push 3","2, 3"],["+","pop 3, pop 2, push 5","5"],["5","push 5","5, 5"],["*","pop 5, pop 5, push 25","25"]]}
```

קוד הפתיחה

public class Main {

    public static int evaluate(String expr) {
        // כתוב את הפתרון כאן
        return 0;
    }

    public static void main(String[] args) {
        System.out.println(evaluate("23+"));      // 5
        System.out.println(evaluate("23+5*"));    // 25
        System.out.println(evaluate("52-3*"));    // 9
        System.out.println(evaluate("7"));        // 7
        System.out.println(evaluate("234*+"));    // 14
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

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