看板 Marginalman 關於我們 聯絡資訊
對於任意位置的 )左邊的( 加 * 要比 )多 ( 右邊的 )加 * 要比( 多 也就是都要有得配對的意思 從左右各數過來就好 class Solution { public: bool checkValidString(string s) { for(int i = 0, l = 0, r = 0, star = 0; i < s.size(); i++){ if(s[i] == '('){ l++; } else if(s[i] == ')'){ r++; if(r > l + star) return false; } else if(s[i] == '*'){ star++; } } for(int i = s.size() - 1, l = 0, r = 0, star = 0; i >= 0; i--){ if(s[i] == '('){ l++; if(l > r + star) return false; } else if(s[i] == ')'){ r++; } else if(s[i] == '*'){ star++; } } return true; } }; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.21.33 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1712498419.A.108.html
JIWP: 大師思路04/07 22:02
跟前天的題目有點像
SecondRun: :O04/07 22:03
※ 編輯: ray90514 (42.76.21.33 臺灣), 04/07/2024 22:05:01