二、括號配對
在本題中,題目會先給你一個包含小號( )及中括號[ ]的字串。當字串符合下列條件時我們稱它為正確的運算式:
1.該字串為一個空字串。
2.如果A為正確的運算式,則(A)及[A]都為正確的運算式。
3.如果A和B都為正確的運算式,則AB也為正確的運算式。
現在,請你寫一個程式,可以讀入這類字串,並檢查它們是否為正確的運算式。字串的最大長度為128個字元。
輸入規範
輸入檔案的第一列為正整數 n,表接下來有n個列待測資料。
輸出規範
檢查每列待測資料,如果正確輸出YES,否則輸出NO。
輸入範例(test2.txt)
3
([])
(([()])))
([()[]()])()
輸出範例(resul2.txt)
YES
NO
YES
解法:
Option Explicit
Private Sub Form_Activate()
Dim I%, N%, sLine$
Open "C:\test2.txt" For Input As #1
Open "C:\result2.txt" For Output As #2
Input #1, N
For I = 1 To N
Line Input #1, sLine
Print IIf(IsBracketPair(sLine), "YES", "NO")
Next
Close #2
Close #1
End Sub
Public Function IsBracketPair(ByVal sArg$) As Boolean
Dim temp$
Do While sArg <> ""
temp = sArg
sArg = Replace(sArg, "{}", "")
sArg = Replace(sArg, "[]", "")
sArg = Replace(sArg, "()", "")
If sArg = temp Then Exit Do
Loop
IsBracketPair = IIf(sArg = "", True, False)
End Function
相關網址:http://tw.knowledge.yahoo.com/question/question?qid=1607041207703