又来到每天必备的leetcode刷题日记啦,今天我们暂时不说链表问题,来讲讲栈的leetcode题目吧。前几天博主发了几篇栈的实际应用实例。然后我们今天趁热打铁来看看栈的leetcode题。在刷题的时候,博主偶然发现一道和前几天发的《栈应用之括号匹配》相识的题,下面一起来看看吧
上题目:

 
(看起来是不是很熟悉啊)
解题方法:
class Solution {
 public:
     bool isValid(string s)
   {
         int n = s.size();//求出字符串的大小
         if (n % 2 == 1)
        {
             return false;//奇数肯定不能成对匹配
         }
        unordered_map<char, char> pairs = {
             {')', '('},
             {']', '['},
             {'}', '{'}
         };// unordered_map是map的进阶版,这里简单当map看就可以啦
         stack<char> stk;//创建一个栈
         for (char ch: s)//这个循环意思就是从字符串s中依次取出元素赋值给字符类型ch。
      {
             if (pairs.count(ch))//对组不为空就运行
         {
                 if (stk.empty() || stk.top() != pairs[ch])
               {
                     return false;
                 }
                 stk.pop();//取出栈的头元素
             }
             else {
                 stk.push(ch);//取出栈的尾元素
             }
         }
         return stk.empty();//返回布尔类型的值,若为空返回true
     }
 };
本贴为博主亲手整理。如有错误,请评论区指出,一起进步。谢谢大家的浏览.










