精華區beta Marginalman 關於我們 聯絡資訊
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