关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

【算法入门】 有效括号序列|逆波兰表达式求值|点击消除(上)

发布时间:2023-06-28 09:00:10
前言 本专栏收录的均为牛客网的算法题目,内含链表、双指针、递归、动态规划、基本数据结构等算法思想的具体运用。牛客网不仅有大量的经典算法题目,也有大厂的面试真题,面试、找工作完全可以来这里找机会。此外,网站内的编码主题多样化,调试功能可运用性强,可谓是非常注重用户体验。这么好的免费刷题网站还不快入手吗,快去注册开启算法百炼成神之路吧! 1、AB3 有效括号序列 题目链接:有效括号序列 题目描述: 1.1、解题思路 采用右括号入栈的思想: 对s字符串进行遍历,如果是字符'('、'['、'{'那就把其对应的右括号入栈。 如果不是这些左括号,那就让该字符与辅助栈顶比较,如果不相等说明不匹配: 这里要先判断辅助栈是否为空,若为空,说明先前没有左括号入栈。 如果字符与辅助栈顶相等,那就进行出栈操作,最后返回栈的empty方法即可。 1.2、代码实现与解析 本题源码: class Solution { public: /** * * @param s string字符串 * @return bool布尔型 */ bool isValid(string s) { //辅助栈 stack stk; for (int i = 0; i < s.length(); i++) { if (s[i] == '(') stk.push(')'); else if (s[i] == '[') stk.push(']'); else if (s[i] == '{') stk.push('}'); else { if (stk.empty() || s[i] != stk.top()) return false; stk.pop(); } } return stk.empty(); } }; 重要注释: 辅助栈需要字符型char,因为单个字符串可当作字符处理 如果遍历字符串是三种左括号,那就将对应右括号入栈 如果是右三种括号,判断栈是否为空或者是否与栈顶相等,不满足则出栈 如果empty方法为真,足以说明该字符串满足括号匹配

/template/Home/leiyu/PC/Static