日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 2116. 判断一个括号字符串是否有效(栈)

發布時間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 2116. 判断一个括号字符串是否有效(栈) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

一個括號字符串是只由 '(' 和 ')' 組成的 非空 字符串。
如果一個字符串滿足下面 任意 一個條件,那么它就是有效的:

  • 字符串為 ().
  • 它可以表示為 AB(A 與 B 連接),其中A 和 B 都是有效括號字符串。
  • 它可以表示為 (A) ,其中 A 是一個有效括號字符串。

給你一個括號字符串 s 和一個字符串 locked ,兩者長度都為 n 。
locked 是一個二進制字符串,只包含 ‘0’ 和 ‘1’ 。對于 locked 中 每一個 下標 i :

  • 如果 locked[i] 是 '1' ,你 不能 改變 s[i] 。
  • 如果 locked[i] 是 '0' ,你 可以 將 s[i] 變為 '(' 或者 ')' 。

如果你可以將 s 變為有效括號字符串,請你返回 true ,否則返回 false 。

示例 1:

輸入:s = "))()))", locked = "010100" 輸出:true 解釋:locked[1] == '1' 和 locked[3] == '1' ,所以我們無法改變 s[1] 或者 s[3] 。 我們可以將 s[0] 和 s[4] 變為 '(' ,不改變 s[2] 和 s[5] ,使 s 變為有效字符串。示例 2: 輸入:s = "()()", locked = "0000" 輸出:true 解釋:我們不需要做任何改變,因為 s 已經是有效字符串了。示例 3: 輸入:s = ")", locked = "0" 輸出:false 解釋:locked 允許改變 s[0] 。 但無論將 s[0] 變為 '(' 或者 ')' 都無法使 s 變為有效字符串。提示: n == s.length == locked.length 1 <= n <= 10^5 s[i] 要么是 '(' 要么是 ')' 。 locked[i] 要么是 '0' 要么是 '1'

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/check-if-a-parentheses-string-can-be-valid
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

跟 678 題一樣的

class Solution { public:bool canBeValid(string s, string locked) {int n = s.size();if(n%2==1) return false;stack<int> l;stack<int> star;for(int i = 0; i < s.size(); ++i){if(s[i] == '(' && locked[i] == '1')l.push(i);else if(locked[i] == '0')star.push(i);else{if(l.empty() && star.empty())return false;//不夠匹配if(!l.empty())l.pop();elsestar.pop();}}while(!l.empty() && !star.empty()){if(l.top() > star.top())// * ( 不能匹配return false;l.pop();star.pop();}return l.empty();} };

80 ms 30.8 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 2116. 判断一个括号字符串是否有效(栈)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。