Guest User

Untitled

a guest
Sep 21st, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. import java.util.Stack;
  2.  
  3. public class BalancedBrackets {
  4.  
  5. private static Stack<Character> characterStack = new Stack<>();
  6.  
  7. public static void main(String[] args) {
  8. String tokens = "[}}}";
  9. // {[()]}
  10. // {[(])}
  11. // {{[[(())]]}}
  12. if (processItem(tokens))
  13. System.out.println("OK");
  14. else
  15. System.out.println("Not OK");
  16. }
  17.  
  18. public static boolean processItem(String tokens) {
  19. if (checkCloseBracketInitially(tokens.charAt(0))) {
  20. return false;
  21. }
  22. for (int i = 0; i < tokens.length(); ++i) {
  23. if (isOpenItem(tokens.charAt(i)))
  24. characterStack.push(tokens.charAt(i));
  25. else {
  26. // pop stack and check if it's actually the opening bracket corresponding to the closing bracket
  27. if (!popAndCheck(tokens.charAt(i))) {
  28. return false;
  29. }
  30. }
  31. }
  32. return characterStack.isEmpty();
  33. }
  34.  
  35. public static boolean isOpenItem(Character character) {
  36. if (character == '{' || character == '[' || character == '(') {
  37. return true;
  38. } else {
  39. return false;
  40. }
  41. }
  42.  
  43. public static boolean popAndCheck(Character closingBracket) {
  44. if (characterStack.size() > 0) {
  45. char poppedCharacter = characterStack.pop();
  46. return ((poppedCharacter == '{' && closingBracket == '}')
  47. || (poppedCharacter == '[' && closingBracket == ']')
  48. || (poppedCharacter == '(' && closingBracket == ')'));
  49. }
  50. return false;
  51. }
  52.  
  53. public static boolean checkCloseBracketInitially(Character character) {
  54. return (character == '}' || character == ']' || character == ')');
  55. }
  56.  
  57. }
Add Comment
Please, Sign In to add comment