Check if a Parentheses String Can Be Valid LeetCode solution in Java
1class Solution {2public boolean canBeValid(String s, String locked) {3int n = s.length();4if (n % 2 != 0) return false;56int possibleOpens = 0;7int fixedCloses = 0;89for (int i = 0; i < n; i++) {10if (s.charAt(i) == '(' || locked.charAt(i) == '0') {11possibleOpens++;12} else {13fixedCloses++;14}1516if (fixedCloses > possibleOpens) return false;17}1819int possibleCloses = 0;20int fixedOpens = 0;2122for (int i = n - 1; i >= 0; i--) {23if (s.charAt(i) == ')' || locked.charAt(i) == '0') {24possibleCloses++;25} else {26fixedOpens++;27}2829if (fixedOpens > possibleCloses) return false;30}3132return true;33}34}