ã‚る日廃å‘を探検ã—ã¦ã„ãŸã‚ãªãŸã¯ã€å‘é“ã«é•·ã„æ•°å¼ S ãŒæ›¸ã‹ã‚Œã¦ã„ã‚‹ã®ã‚’発見ã—ãŸã€‚大ããªæ•°ãŒå¥½ããªã‚ãªãŸã¯ã€ãƒãƒ§ãƒ¼ã‚¯ã‚’å–り出ã—ã€æ•°å¼ã‚’計算ã—ãŸçµæžœãŒã§ãã‚‹ã ã‘大ãããªã‚‹ã‚ˆã†ã«(
ã¾ãŸã¯)
を書ãåŠ ãˆã‚‹ã“ã¨ã«ã—ãŸã€‚書ãåŠ ãˆãŸå¾Œã‚‚æ•°å¼ã«ãªã£ã¦ã„ãªã‘ã‚Œã°ãªã‚‰ãªã„ã¨ã™ã‚‹ã¨ã€æœ€å¤§ã§ã„ãã¤ã«ã§ãã‚‹ã‹ã€‚
æ–‡å—ã¨æ–‡å—ã®é–“ã¯å分広ã空ã„ã¦ã„ã¦ã€(
ã¾ãŸã¯)
ã§ã‚ã‚Œã°ã„ãã¤ã§ã‚‚書ãåŠ ãˆã‚‹ã“ã¨ãŒã§ãる。最終的ã«æ•°å¼ã«ãªã£ã¦ã„ã‚Œã°ã€æœ€åˆã®ã‹ã£ã“ã®å¯¾å¿œãŒå´©ã‚Œã‚‹ã‚ˆã†ã«(
ã¾ãŸã¯)
を書ã„ã¦ã‚‚よã„(Sample 2å‚照)。
ã¾ãŸã€ã“ã“ã§ã¯ä»¥ä¸‹ã®BNFã§å®šç¾©ã•ã‚Œã‚‹<expr>ã‚’æ•°å¼ã¨å‘¼ã¶ã€‚æ•°å¼ä¸ã®æ•°ã¯å…¨ã¦ä¸€æ¡ã§ã‚る。
<expr> ::= "(" <expr> ")" | <term> "+" <term> | <term> "-" <term> <term> ::= <digit> | <expr> <digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
S ã¯æ•°å¼ã‚’表ã™ã€‚
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã§æ¨™æº–入力ã‹ã‚‰ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
S
ç”ãˆã‚’æ•´æ•°ã§å‡ºåŠ›ã›ã‚ˆã€‚
1-(2+3-4+5)
5
1-(2+3-(4+5))ãŒæœ€å¤§ã¨ãªã‚‹ã€‚
1-(2+3+4)
0
(1-(2+3)+4)ãŒæœ€å¤§ã¨ãªã‚‹ã€‚
1-(2+3)
-4
1-(2)+(3)ã¯ã“ã“ã§ã„ã†æ•°å¼ã§ã¯ãªã„ã“ã¨ã«æ³¨æ„。