括號匹配問題

2022-02-01 13:03:33 字數 1196 閱讀 8634

寫乙個小程式玩玩:括號匹配問題。要求如下:

本題目要求編乙個程式,該程式能夠輸入一段字串進行括弧匹配檢查。如果語句中"("和")"數目相等,且能夠完整的匹配成對,此時輸出"正確"。否則輸出"錯誤"。

基本思路:思路:設定乙個計數器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。解題思路 檢驗括號是否是匹配的方法可以用 期待的急迫程度 這個概念來描述。例如考慮...