Sort by

recency

|

650 Discussions

|

  • + 0 comments
    import java.util.*;
    class Solution{
    	
    	public static void main(String []argh)
    	{
    		Scanner sc = new Scanner(System.in);
            
            Map<Character, Character> parentheses = new HashMap<>();
            parentheses.put(')', '(');
            parentheses.put(']', '[');
            parentheses.put('}', '{');
            
    		while (sc.hasNext()) {
    			String input = sc.next();
                boolean isBalanced = true;
                
                Stack<Character> stack = new Stack<>();
                
                for (int i = 0; i < input.length(); i++) {
                    char c = input.charAt(i);
                
                    if (c == '(' || c == '[' || c == '{') {
                        stack.add(c);
                    } else {
                        if (stack.isEmpty() || stack.pop() != parentheses.get(c)) {
                            isBalanced = false;
                            break;
                        }
                    }
                }
                
                if (!stack.isEmpty()) {
                    isBalanced = false;
                }
                System.out.println(isBalanced);
    		}
    		
    	}
    }
    
  • + 0 comments
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String input=sc.next();
            boolean valid = input.length() % 2 == 0;
            Stack<Character> charStack = new Stack<>();
            for(int i=0; valid && i<input.length();i++) {
                Character c = input.charAt(i);
                if(List.of('[', '{', '(').contains(c)) {
                    charStack.push(c);
                } else {
                    if(charStack.isEmpty()) {
                        valid = false;
                        break;
                    }
                    Character p = charStack.pop();
                    if((c == '}' && p != '{') || 
                       (c == ']' && p != '[') ||
                       (c == ')' && p != '(')) {
                        valid = false;
                        break;
                    }
                }
            }
            if(!charStack.isEmpty()) valid = false;
            System.out.println(valid ? true : false);
        }
    

    }

  • + 0 comments

    Here is Java Stack solution - https://programmingoneonone.com/hackerrank-java-stack-problem-solution.html

  • + 0 comments
    import java.io.*;
    import java.util.*;
    
    public class Solution {
    
        public static void main(String[] args) {
            Scanner sn = new Scanner(System.in);
    				
            while(sn.hasNextLine()){
                String str = sn.nextLine();
                boolean isBalanced = isBalanced(str);
                System.out.println(isBalanced);
            }
            
        }
        
        public static boolean isBalanced(String s){
            Stack<Character> stack  = new Stack<>();
            
            for(char ch: s.toCharArray()){
                if(ch=='(' || ch=='{' || ch=='['){
                    stack.push(ch);
                }else if(ch==')' || ch=='}' || ch==']'){
                    if(stack.isEmpty()) return false;
                    char top = stack.pop();
                    
                    if( ( ch==')' && top != '(' ) || ( ch=='}' && top != '{' ) || ( ch==']' && top != '[' ) ){
                        return false;
                    }
                    
                }
            }
            
            return stack.isEmpty();
        } 
    }
    
  • + 0 comments
    import java.util.*;
    class Solution{
    	
    	public static void main(String []argh)
    	{
    		Scanner sc = new Scanner(System.in);
    		while (sc.hasNext()) {
    			String input=sc.next();
                Deque <Character> q = new ArrayDeque<>();
                Deque <Character> q1 = new ArrayDeque<>();
                char [] arr = input.toCharArray();
                for (char c: arr){
                    q.push(c);
                }
                boolean p = false;
                while (!q.isEmpty()){
                    char c = q.pop();
                    if (c=='}' || c==')' || c==']' ){
                        q1.push(c);
                    }
                    if ((c=='{' || c=='(' || c=='[')){
                        if (q1.isEmpty()){
                            p=false;
                            break;
                        }
                        if (c=='{' && q1.pop()=='}') p=true;
                        else if (c=='(' && q1.pop()==')') p=true;
                        else if (c=='[' && q1.pop()==']') p=true;
                        else{
                            p=false;
                            break;
                        }
                    }
                }
                if (!q1.isEmpty()){
                    p=false;
                }
                System.out.println(p);
                //sc.close();
    		}
    		
    	}
    }