javatechie

Verify Valid Parenthesis

Jun 4th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.82 KB | None | 0 0
  1. package com.javatechie;
  2.  
  3. import java.util.*;
  4.  
  5. public class parenthesisBalance {
  6.  
  7.     public static Map<String,Integer> buildParenthesisMap(String expression){
  8.         Map<String,Integer> map=new HashMap<>();
  9.         for(String exp:expression.split("")){
  10.             if(map.containsKey(exp)){
  11.                 map.put(exp,map.get(exp)+1);
  12.             }else{
  13.                 map.put(exp,1);
  14.             }
  15.         }
  16.         return map;
  17.     }
  18.  
  19.     public static boolean compareParenthesis(String expression){
  20.  
  21.         Map<String,Integer> parenthesisMap=buildParenthesisMap(expression);
  22.  
  23.         if(parenthesisMap.containsKey("(") && parenthesisMap.containsKey(")")) {
  24.             if(parenthesisMap.get("(")==parenthesisMap.get(")")){
  25.                 return true;
  26.             }
  27.         }
  28.  
  29.         else if(parenthesisMap.containsKey("{") && parenthesisMap.containsKey("}")) {
  30.             if(parenthesisMap.get("{")==parenthesisMap.get("}")){
  31.                 return true;
  32.             }
  33.         }
  34.  
  35.         else if(parenthesisMap.containsKey("[") && parenthesisMap.containsKey("]")) {
  36.             if(parenthesisMap.get("[")==parenthesisMap.get("]")){
  37.                 return true;
  38.             }
  39.         }
  40.         return false;
  41.     }
  42.  
  43.     public static void main(String[] args) {
  44.         System.out.println("is Valid : "+compareParenthesis("[())]"));
  45.         System.out.println("is Valid : "+compareParenthesis("{[()]}"));
  46.     }
  47.  
  48.     //Also you can use java 8 below poc
  49.     /* public static Map<String, Long> buildParenthesisMap(String expression) {
  50.         return Arrays.stream(expression.split("")).
  51.                 collect(Collectors.groupingBy(key -> key, Collectors.counting()));
  52.         *//*  
  53.             Also we can use this
  54.         collect(Collectors.toMap(key -> key, key -> 1, Integer::sum));
  55.         *//*
  56.     }*/
  57. }
Add Comment
Please, Sign In to add comment