המשימה
בכתיב פולני הפוך (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'. • בסוף הביטוי נשאר במחסנית איבר אחד — הוא התשובה. ממשק מבני הנתונים כבר מצורף למשימה. [טבלה]
קוד הפתיחה
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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.