×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: Shamir Yona
Added: Sep 13, 2015 1:46 PM
Views: 1921
Tags: no tags
  1. import java.util.Stack;
  2.  
  3. import javax.swing.text.StyledEditorKit.BoldAction;
  4.  
  5.  
  6. public class BraceMatch {
  7.        
  8.         private static final String openBraces = "[({";
  9.         private static final String closeBraces = "])}";
  10.        
  11.         private static boolean chkBraces(String inpStr) {
  12.                 boolean retVal = true;
  13.                 int openBraceOff, closeBraceOff;
  14.                
  15.                
  16.                 Stack<Integer> bracesStack = new Stack<>();
  17.                
  18.                 for (int i = 0; i < inpStr.length(); i++)
  19.                 {
  20.                         char c = inpStr.charAt(i);
  21.                         if ((openBraceOff = openBraces.indexOf(c)) != -1)
  22.                                 bracesStack.push(openBraceOff);
  23.                         else if ((closeBraceOff = closeBraces.indexOf(c)) != -1)
  24.                         {
  25.                                 if (bracesStack.isEmpty() || bracesStack.pop() != closeBraceOff)
  26.                                 {
  27.                                         retVal = false;
  28.                                         break;
  29.                                 }
  30.                         }
  31.                        
  32.                 }
  33.                 // Open braces left??
  34.                 if (retVal && bracesStack.size() > 0)
  35.                         retVal = false;
  36.                 return(retVal);
  37.         }      
  38.  
  39.        
  40.         public static void main(String[] args) {
  41.                
  42.                 String inpStr = "{(2(323xxx)[ddd])}";
  43.                
  44.                 boolean isOk = chkBraces(inpStr);
  45.                 System.out.printf("%s is %b", inpStr, isOk);
  46.                
  47.         }
  48. }
  49.