Skip to content

Instantly share code, notes, and snippets.

@clarkdo
Created January 30, 2018 07:43
Show Gist options
  • Save clarkdo/73dfb123b73ece2e536508488fb70d4d to your computer and use it in GitHub Desktop.
Save clarkdo/73dfb123b73ece2e536508488fb70d4d to your computer and use it in GitHub Desktop.
import java.util.List;
import java.util.ArrayList;
class Solution {
public int solution(String S) {
if (S == null || S.length() == 0) return 1;
if (S.length() % 2 != 0) return 0;
char first = S.charAt(0);
if (first != '{' && first != '[' && first != '(') return 0;
List<Character> brackets = new ArrayList<>();
for (char c : S.toCharArray()) {
if (c == '{' || c == '[' || c == '(') {
brackets.add(c);
} else {
int last = brackets.size() - 1;
if (last == -1) return 0;
int diff = c - brackets.get(last);
if (diff == 1 || diff == 2) {
brackets.remove(last);
}else {
return 0;
}
}
}
return brackets.size() == 0 ? 1 : 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment