你得到了一個機會,可以為 Bracketeer™ 撰寫軟體,那是一台古老卻強大的大型主機。 它上面執行的軟體是用一種專有語言寫成的。 這門語言的語法大部分你都很熟悉,但你會注意到_好多_方括號、大括號和小括號。 Bracketeer™ 雖然強大,卻缺乏彈性。 只要原始碼裡有任何未成對的方括號、大括號或小括號,Bracketeer™ 就會當機,必須重新開機。 為了避免這種情況,你開始寫一段程式,在把程式碼放上 Bracketeer™ 執行之前,先確認方括號、大括號和小括號是否成對。
給定一個包含方括號 []、大括號 {}、小括號 () 或這些字元任意組合的字串,請確認所有成對的括號是否都正確配對並正確巢狀。其他字元都應該忽略。舉例來說,"{what is (42)}?" 是配對正確的,而 "[text}" 則不是。
完成這個練習有很多種方法,不過我們額外提供了一些函式骨架,給想練習撰寫自己的能力處理常式的人。
這個練習提供的checkBalance輔助函式簽章使用了能力需求{Stack}。
能力Stack已經為你定義好了,但處理常式Stack.run還沒!
如果你選擇這麼做,也可以實作Stack.run、checkBalance和isPaired函式。
即使你選擇不使用能力來實作這個練習,測試仍然會執行。