Balanced Brackets

  • + 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;
            
        }