寫乙個小程式玩玩:括號匹配問題。要求如下:
本題目要求編乙個程式,該程式能夠輸入一段字串進行括弧匹配檢查。如果語句中"("和")"數目相等,且能夠完整的匹配成對,此時輸出"正確"。否則輸出"錯誤"。
基本思路:思路:設定乙個計數器counter,遇到(,就+1,遇到),就-1,最後看counter是不是0就行.對於")("這種情況,可以用首個)>0來排除。
實現**:
///測試**:///返回0為匹配,否則不匹配
///public
static
int brackets(string
input)
if (input[i]==')'
) }}
}//跳出迴圈執行這裡
return
counter;
}
static結果:void main(string
args)
方法二:堆疊、鍊錶實現
/*方法三:遞迴* * 演算法的設計思想:
1. 凡出現左括弧,則進棧
2. 凡出現右括弧,首先檢查棧是否空
若棧空,則表明右括號多了
否則和棧頂元素比較
若相匹配,則左括弧出棧
否則匹配不正確
3. 表示式檢驗結束時,
若棧空,則匹配正確
否則表明左括號多了
* */public
static
bool bracketstack(string
input)
else
if (curchar == ')'
)
else
else}}
}if (stack.count == 0
)
else
}
這時候,題目變了。
括號匹配:給定字串,輸出括號是否匹配,例如,"()" yes;")(" no;"(abcd(e)" no;"(a)(b)" yes。要求必須用遞迴寫,整個實現不可以出現乙個迴圈語句。
遞迴實現:
todo...
參考:
括號匹配問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 基本演算法思...
括號匹配問題
假設表示式中包含三種括號 圓括號 方括號和花括號,它們可以相互巢狀,如 等均為正確的格式,而等為不正確的格式。以下為演算法程式 括號匹配問題 include include int main char ch while ch getchar eof count 0 break case if cou...
括號匹配問題
問題描述 假設表示式中允許包含兩種括號 圓括號與方括號,其巢狀的順序隨意。如 或 等為正確的匹配 而 或者 或者 均為錯誤的匹配。現要求編寫程式,判斷輸入的一行括號是否是匹配的,如果是匹配的,輸出yes,否則輸出no。解題思路 檢驗括號是否是匹配的方法可以用 期待的急迫程度 這個概念來描述。例如考慮...