Balanced Brackets

Sort by

recency

|

252 Discussions

|

  • + 0 comments

    How is this problem intermediate yet there are absolute insane problems that take me 30-45 minutes to even understand what they're asking under "easy"?

    This is the easiest question I've ever answered and an ACTUAL REAL WORLD PROBLEM UNLIKE 95% OF THE BS ON THIS SITE.

  • + 0 comments
        public static string isBalanced(string s)
        {
            Stack<char> brackets = new Stack<char>();
            
            foreach(char bracket in s){
                if(brackets.TryPeek(out char last) && last == Opposite(bracket)) brackets.Pop();
                else brackets.Push(bracket);
            }
            
            if(brackets.Any()) return "NO";
            
            return "YES";
        }
        
        public static char Opposite (char bracket){
            switch(bracket){
                case '}' : return '{';
                case ')' : return '(';
                case ']' : return '[';            
            }
            return default;
            
        }
    
  • + 0 comments
    //JS Solution
    
    function isBalanced(s) {
        let brackDict = [
            ["(",")"],
            ["[","]"],
            ["{","}"],
        ];
        
        
        let stack = [];
        
        for (let i = 0; i < s.length; i++) {
           let match = brackDict.find(item => item[0] == s[i]);
           if (match) {
                stack.push(match);
           } else {
                let last = stack.pop();
                if (last == undefined || last[1] != s[i]) {
                  return 'NO';
                }
            }
        
        }  
        
        if (stack.length != 0) {
            return 'NO';
        }
        
        return 'YES';
    }
    
  • + 0 comments

    js answer using a map for checking correlation:

    function isBalanced(s) {
        // Write your code here
        let openStack = new Array();
        let idx = 0;
        let valid = true;
        let correlationMap = new Map([
            [')', '('],
            [']', '['],
            ['}', '{'],
        ]);
        while(valid && idx<s.length){
            if(correlationMap.has(s[idx]) && (correlationMap.get(s[idx]) != openStack.pop())){
                valid = false;
            }else if(!correlationMap.has(s[idx])){
                openStack.push(s[idx]);
            }
            idx++;
        }
        if(openStack.length > 0) valid = false;
        return (valid)?('YES'):('NO');
    }
    
  • + 0 comments
    
    
    stack<char> Brackets;
    for(char c : s)
    {
        if(c == '(' || c == '[' || c == '{')
            Brackets.push(c);
        else 
        {
    
            if(Brackets.empty()) return "NO";
            char top = Brackets.top();
            if((c == ')' && top != '(')
            || (c == ']' && top != '[')
            || (c == '}' && top != '{'))
                return "NO";
            else 
                Brackets.pop();   
        }
    }
            return Brackets.empty() ? "YES" : "NO";
    

    }