C++ 括号匹配(直观版本和代码最简单版本)

C++ 括号匹配(直观版本和代码最简单版本),第1张

C++ 括号匹配(直观版本和代码最简单版本) C++ 括号匹配

下面这个是C++老师写的,思路很直观,很清晰。最下面有我的简化版本。

bool is_valid_parentheses(const string& s)
{
	stack symbol;
	for (const auto& i : s) {
		if (i == '(' || i == '[') {
			symbol.push(i);
		}
		else if (i == ')') {
			if (!symbol.empty() && symbol.top() == '(') {
				symbol.pop();
			}
			else {
				return false;
			}
		}
		else if (i == ']') {
			if (!symbol.empty() && symbol.top() == '[') {
				symbol.pop();
			}
			else {
				return false;
			}
		}
		else {
			return false;
		}
	}
	return symbol.empty();
}
简化版本
bool match(const string strs) {
    
    stack s;
	for (const auto& c : strs)
	{
		if (!s.empty()&&(s.top()=='{'&&c=='}'||s.top()=='(' &&c==')'||s.top()=='['&&c==']'))
            s.pop();
        else s.push(c);
	}

    return s.empty();
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5635063.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存