溫馨提示×

如何使用c++ stack類實現(xiàn)括號匹配

c++
小樊
81
2024-09-25 08:35:13
欄目: 編程語言

使用C++的stack類可以實現(xiàn)括號匹配。具體步驟如下:

  1. 定義一個stack對象,用于存儲左括號。

  2. 遍歷輸入的字符串,當遇到左括號時,將其壓入stack中。

  3. 當遇到右括號時,檢查stack是否為空,如果為空,則說明沒有匹配的左括號,返回false;否則,將棧頂?shù)淖罄ㄌ枏棾?,檢查是否與當前的右括號匹配,如果匹配,則繼續(xù)遍歷,否則返回false。

  4. 遍歷結(jié)束后,檢查stack是否為空,如果為空,則說明所有的括號都匹配成功,返回true;否則,返回false。

下面是具體的C++代碼實現(xiàn):

#include <iostream>
#include <stack>
#include <string>
using namespace std;

bool isMatch(string s) {
    stack<char> st;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] == '(') {
            st.push(')');
        } else if (s[i] == '[') {
            st.push(']');
        } else if (s[i] == '{') {
            st.push('}');
        } else if (st.empty() || st.top() != s[i]) {
            return false;
        } else {
            st.pop();
        }
    }
    return st.empty();
}

int main() {
    string s = "()[]{}";
    cout << (isMatch(s) ? "匹配成功" : "匹配失敗") << endl;
    return 0;
}

輸出結(jié)果為:

匹配成功

0