a { b c d { e f } g }
我想分析它一個令牌在時刻(字母或支架)的輸入。當我點擊第一個大括號}
時,我需要知道自從最後一個大括號(e和f = 2)以來有多少個元素。然後當我在那之後擊中那個,我需要4(b,c,d,g)。
抓取令牌1是很容易的,但是...我不知道如何計算它們。我正在考慮Stack<int>
,但我不能修改頂部元素來增加它?
a { b c d { e f } g }
我想分析它一個令牌在時刻(字母或支架)的輸入。當我點擊第一個大括號}
時,我需要知道自從最後一個大括號(e和f = 2)以來有多少個元素。然後當我在那之後擊中那個,我需要4(b,c,d,g)。
抓取令牌1是很容易的,但是...我不知道如何計算它們。我正在考慮Stack<int>
,但我不能修改頂部元素來增加它?
而不是試圖修改頂部元素,爲什麼不保留那一個只是在int
變量。
編輯:如果你想要把所有的狀態在棧本身,你總是可以把頂層元素想象成一個變量,它被p操作彈出式增量推送。在這一點上,操作是:
這可能效率稍低,但我認爲它更優雅。
在這種情況下,大括號外的* a *應該被忽略嗎? – 2010-10-23 06:11:38
@Oyvind:在這個假設的情況下,是的。在實踐中...我想我會有一個隱含的開始和結束大括號。 – mpen 2010-10-23 06:16:15