Sort by

recency

|

1621 Discussions

|

  • + 0 comments

    char brackets[3][2] = { {'['. ']'}, {'(', ')'}, {'{', '}'}, }; char* isBalanced(char* s) { char* stack = calloc(sizeof(char),strlen(s)); int tos = 0; char b; while((b = *s)){ for(int i = 0; i < 3; i++) { if(brackets[i][0] ==b) { stack[tos++] = b; } else if(brackets[i][1] = b) { char left_b = stack[--tos]; if(brackets[i][O] == b) { char left_b = stack[--tos]; if(brackets[i][O] == b){ stack[tos++] = b; } else if((brackets[i][1] == b) { char left_b = stack[--tos]; if(brackets[i][O] != left_b){ return "NO"; } } } ++s; }free(stack); returntosv == 0 ?"YES" : "NO"; }

  • + 0 comments

    in C:

    char brackets[3][2] = {
        {'[', ']'},
        {'(', ')'},
        {'{', '}'},
     };
     
    char* isBalanced(char* s) {
        char* stack = calloc(sizeof(char), strlen(s));
        int tos = 0;
        char b;
        
        while((b = *s)) {
            for(int i = 0; i < 3; i++) {
                if(brackets[i][0] == b) {
                    stack[tos++] = b;
                    
                } else if(brackets[i][1] == b) {
                    char left_b = stack[--tos];
                    if(brackets[i][0] != left_b) {
                        return "NO";
                    }
                }
            }
            ++s;
        }
        free(stack);
        return tos == 0 ? "YES" : "NO";
    }
    
  • + 0 comments
    public static String isBalanced(String s) {
        // Use ArrayDeque instead of Stack for better performance
        Deque<Character> stack = new ArrayDeque<>();
    
        for (char ch : s.toCharArray()) {
            // Push opening brackets onto the stack
            switch (ch) {
                case '(':
                case '[':
                case '{':
                    stack.push(ch);
                    break;
                default: 
                    // If the stack is empty or brackets don't match, return "NO"
                    if (stack.isEmpty() //
                        || !isMatchingPair(stack.pop(), ch)) {
                        return "NO";
                    }
                    break;
            }
        }
        // If the stack is empty, the string is balanced
        return stack.isEmpty() ? "YES" : "NO";
    }
    
    // Helper method to check if brackets match
    private static boolean isMatchingPair(char open, char close) {
        return (open == '(' && close == ')') //
            || (open == '[' && close == ']') //
            || (open == '{' && close == '}');
    }
    
  • + 0 comments
    def isBalanced(s):
        matching_pairs = {')': '(', '}': '{', ']': '['}
        stack = []
        
        for char in s:
            if char in "({[":
                stack.append(char)
            elif char in ")}]":
                if not stack or stack[-1] != matching_pairs[char]:
                    return "NO"
                stack.pop()
        
        return "YES" if not stack else "NO"
    
  • + 0 comments

    This problem Test case 4 may be some issue