Re: [閒聊] 每日leetcode
2116. Check if a Parentheses String Can Be Valid
## 思路
記錄還沒配對的括號個數 open
把locked==0的也當作 `(`
如果遇到配對不了的括號 就回傳FALSE
兩個方向各掃一遍
## Code
```cpp
class Solution {
public:
bool canBeValid(string s, string locked) {
int n = s.size();
if (n & 1) return false;
int open = 0;
for (int i=0; i<n; ++i) {
if (locked[i] == '0' || s[i] == '(') {
++open;
} else if (open == 0) {
return false;
} else {
--open;
}
}
open = 0;
for (int i=n-1; i>=0; --i) {
if (locked[i] == '0' || s[i] == ')') {
++open;
} else if (open == 0) {
return false;
} else {
--open;
}
}
return true;
}
};
```
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 2.56.252.10 (日本)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1736651034.A.B6A.html
推
01/12 12:17,
11月前
, 1F
01/12 12:17, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1266 之 1554 篇):