
思路
用两个数(max,min)统计(的范围,当不可修改时且遇到(,min++,max++;当不可修改时且遇到)min–,max–;当可以修改时,min–,max++
解题过程
注意,当min==0时遇到可修改,只能取),即令min=1
Code
class Solution {
public boolean canBeValid(String s, String locked) {
if (s.length() % 2 != 0)
return false;
int min = 0, max = 0;
for (int i = 0; i < s.length(); i++) {
if (locked.charAt(i) == '0') {
max++;
min--;
} else {
if (s.charAt(i) == '(') {
min++;
max++;
} else {
min--;
max--;
if (max < 0)
return false;
}
}
if (min < 0)
min = 1;
}
return min == 0;
}
}
作者:菜卷
链接:https://leetcode.cn/problems/check-if-a-parentheses-string-can-be-valid/solutions/3629120/pan-duan-yi-ge-gua-hao-zi-fu-chuan-shi-f-7skt/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

被折叠的 条评论
为什么被折叠?



