Re: [閒聊] 每日leetcode
對於任意位置的
)左邊的( 加 * 要比 )多
( 右邊的 )加 * 要比( 多
也就是都要有得配對的意思
從左右各數過來就好
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
推
04/07 22:02,
1月前
, 1F
04/07 22:02, 1F
跟前天的題目有點像
推
04/07 22:03,
1月前
, 2F
04/07 22:03, 2F
※ 編輯: ray90514 (42.76.21.33 臺灣), 04/07/2024 22:05:01
討論串 (同標題文章)