[C++]连续最长括号匹配问题
2017-10-06 00:00
295 查看
测试代码
#include "stdafx.h" #include <cstdlib> #include <iostream> #include <string> #include <stack> using std::cout; using std::cin; using std::endl; using std::stack; using std::string; int CalculateMaxMatch(string inputStr); int main() { string inputStr; cout << "请输入括号的字符串: "; cin >> inputStr; cout << "当前输入的括号字符串: " << inputStr << endl; cout << "最长括号匹配是: " << CalculateMaxMatch(inputStr) << endl; system("pause"); return 0; } //最长括号匹配问题 int CalculateMaxMatch(string inputStr) { int length = inputStr.length(); stack<int> stack; int max = 0; int start = -1; for (int i = 0; i < length; i++) { char c = inputStr.at(i); //如果是左括号则进栈 if (c == '(') { stack.push(i); } //右括号则出栈匹配 else { //栈不空的情况下才进行匹配 否则当前的右括号不存在与之匹配的左括号 if (!stack.empty()) { stack.pop(); if (stack.empty()) { if (max < i - start) max = i - start; } else { int t = stack.top(); if (max < i - t) max = i - t; } } else { start = i; } } } return max; }
测试结果
相关文章推荐
- [C++]连续最长括号匹配问题解决策略二(学习)
- [C++]连续最长括号匹配问题
- [C++]连续最长括号匹配问题解决策略二(学习)
- 最长括号匹配问题
- 最长括号匹配问题
- 一个看似简单却复杂的问题:求两个字符串的 左向右匹配 所有的 最长连续的 公共子字符串( 在每个字符串中先后次序相同的) 序列
- 两个问题:n对括号有多少种匹配方式与与最长递减子序列
- 最长的含有相同数目的01子串 & 括号匹配问题
- 数据结构(18)栈典型问题之C++实现括号匹配
- 括号匹配问题(C++、堆栈)
- 用C++链式栈解决数据结构中的括号匹配问题。
- 【C++】括号匹配问题与逆波兰表达式
- 【最长连续序列问题】
- 栈之括号匹配问题
- [luoguP1944] 最长括号匹配_NOI导刊2009提高(1)
- 求最长连续字串问题
- 括号匹配问题
- 最长括号匹配
- 数据结构之栈之括号匹配问题
- 最长滑道问题(非递归,C++)