LeetCode20 有用的括号

打印 上一主题 下一主题

主题 565|帖子 565|积分 1695

前言

   标题: 20. 有用的括号
文档: 代码随想录——有用的括号
编程语言: C++
解题状态: 本身的做法空间复杂度过高
  思绪

括号匹配是使用栈解决的经典问题。本题技巧性比较强,思考的时候要与栈的使用相对照,这样轻易得到思绪。
代码

  1. class Solution {
  2. public:
  3.     bool isValid(string s) {
  4.         if (s.size() % 2 != 0) return false;
  5.         stack<char> st;
  6.         for (int i = 0; i < s.size(); i++) {
  7.             if (s[i] == '(') {
  8.                 st.push(')');
  9.             } else if (s[i] == '[') {
  10.                 st.push(']');
  11.             } else if (s[i] == '{') {
  12.                 st.push('}');
  13.             } else if (st.empty() || st.top() != s[i]) {
  14.                 return false;
  15.             } else {
  16.                 st.pop();
  17.             }
  18.         }
  19.         return st.empty();
  20.     }
  21. };
复制代码


  • 时间复杂度:                                              O                               (                               n                               )                                      O(n)                        O(n)
  • 空间复杂度:                                              O                               (                               n                               )                                      O(n)                        O(n)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表