בהנתן ביטוי, מחפשים את הביטוי בסוגריים החיצוניים ביותר ושולחים אותו ברקורסיה.לדוגמה:
Foo(1+(2 * 3 + 8))
-->
1 + Foo(2 * 3 + 8)
-->
1 + 14
= 15
האתגר הוא איך למצוא כל פעם את הסוגריים הכי חיצוניים, וכאן אפשר לעלות מספר רעיונות, חלקם יעילים יותר, חלקם פחות; אני אתן רעיון אחד מוכר:
מאתחלים מחסנית ומתחילים לקרוא את המספר, בכל פעם שרואים סוגר שמאלי, דוחפים אותו למחסנית ובכל פעם שרואים סוגר ימני מוחקים איבר מהמחסנית. אם נתקלנו בסוגר ימני והמחסנית ריקה אז הביטוי שגוי. ברגע שהוצאנו את הסוגר השמאלי האחרון שנמצא במחסנית, אז מצאנו ביטוי תקין שאפשר לשלוח אותו לרקורסיה.
