括號匹配問題 棧的應用

2021-10-25 18:58:32 字數 515 閱讀 3329

**黑馬教程

給定乙個字串,裡邊可能包含「()」和其它字元,編寫程式檢查字串中的小括號是否成對出現。

例如: "(上海)(長安)":正確匹配

"上海((長安))":正確匹配

"上海(長安(北京)(深圳)南京):正確匹配

"上海(長安))":錯誤匹配

"((上海)長安":錯誤匹配

利用棧來解決。遍歷字串,如果遇到"(",則將其壓入棧中,如果遇到")",則做乙個彈棧的動作,檢查彈出的元素是否是"(",如果是則匹配成功,如果是null,則匹配錯誤。如果字串遍歷完,棧非空,則證明"("多,即括號不成對出現。

public class bracketsmatchtest

public static boolean ismatch(string str)else if(currchar.equals(")"))

}} if(chars.size() == 0)else

}}

棧的應用 括號匹配問題

typedef struct stack stack,pstack 單向鏈式儲存結構 void pushstack pstack stack,char str 左括號入棧 bool popstack pstack stack,char str 左括號出棧 非常簡單的出入棧操作 這裡就說下進棧操作不用...

括號匹配問題 棧的應用

pragma once ifndef stack h define stack h define datatype char define max size 20 typedef struct stack stack 初始化棧 void stackinit stack s 壓棧 void stack...

括號匹配問題(棧的應用)

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 先了解一下棧...