当前位置:网站首页 > 技术博客 > 正文

括号匹配算法的四种计算结果



括号匹配

是指在编程中,判断括号是否匹配的一种操作。在

C++

中,可以使用栈来实现

括号匹配

以下是一个简单的

括号匹配

算法的实现步骤:

1. 创建一个空栈。

2. 遍历输入的字符串,对于每个字符:

- 如果是左括号('('、'['、'{'),将其压入栈中。

- 如果是右括号(')'、']'、'}'),则判断栈是否为空:

- 如果栈为空,说明右括号没有对应的左括号,括号不匹配,返回false。

- 如果栈不为空,弹出栈顶元素,并判断弹出的左括号与当前右括号是否匹配:

- 如果不匹配,括号不匹配,返回false。

3. 遍历完字符串后,如果栈为空,则说明所有括号都匹配,返回true;否则,说明还有未匹配的左括号,返回false。

下面是一个示例代码实现:

 #include <iostream> #include <stack> #include <string>  bool isBracketMatched(const std::string& str) { std::stack<char> brackets; for (char c : str) { if (c == '(' || c == '[' || c == '{') { brackets.push(c); } else if (c == ')' || c == ']' || c == '}') { if (brackets.empty()) { return false; } char top = brackets.top(); brackets.pop(); if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) { return false; } } } return brackets.empty(); }  int main() { std::string str; std::cout << "请输入一个字符串:"; std::cin >> str; if (isBracketMatched(str)) { std::cout << " 括号匹配 " << std::endl; } else { std::cout << "括号不匹配" << std::endl; } return 0; } 

  • 上一篇: java mock单元测试
  • 下一篇: centos7安装iftop
  • 版权声明


    相关文章:

  • java mock单元测试2025-05-05 08:29:59
  • 原生js获取cookie2025-05-05 08:29:59
  • js的typeof返回的结果有哪几种2025-05-05 08:29:59
  • dnn神经网络算法2025-05-05 08:29:59
  • 数字图像处理实践2025-05-05 08:29:59
  • centos7安装iftop2025-05-05 08:29:59
  • 两个盘都有steam文件夹2025-05-05 08:29:59
  • lofree键盘连接电脑2025-05-05 08:29:59
  • linux中ip2025-05-05 08:29:59
  • 汇编中移位指令2025-05-05 08:29:59