作者Furina (芙寧娜)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Mon Jan 13 00:53:07 2025
2116. Check if a Parentheses String Can Be Valid
自己寫的很多行又有漏洞,只好去看大神寫的
思路:
字串長度是奇數就回傳false
遍歷字串,用open紀錄鎖住的括號數量,左括號加,右括號減
只要open加上沒被鎖住的括號數 < 0 就回傳false
之後再反向遍歷即可
C
bool canBeValid(char* s, char* locked) {
if(strlen(s) % 2 == 1) return 0;
int open = 0, close = 0, unlock_1 = 0, unlock_2 = 0;
for(int i = 0; i < strlen(s); i++){
if(locked[i] == '0') unlock_1++;
else if(s[i] == '(') open++;
else if(s[i] == ')') open--;
if(unlock_1 + open < 0) return 0;
int j = strlen(s) - i - 1;
if(locked[j] == '0') unlock_2++;
else if(s[j] == ')') close++;
else if(s[j] == '(') close--;
if(unlock_2 + close < 0) return 0;
}
return 1;
}
--
芙芙搖
https://i.imgur.com/MaRqFO6.gif
生氣芙
https://i.imgur.com/KBa6Y4W.gif
真芙了
https://i.imgur.com/bxBemfT.gif
芙芙笑
https://i.imgur.com/uEnaGdP.gif
嗚嗚嗚
https://i.imgur.com/NCYm7ne.gif
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.220.186 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1736700791.A.82A.html
推 medama: 大師 01/13 00:54
推 oin1104: 大師 01/13 01:09