Welcome to the first programming challenge! Three of these will be posted a week and you can complete it in any language you want.

You get a point for completing an easy challenge, 2 for a medium, and 3 for a hard. For each challenge if you solve it in the least amount of characters you get a bonus point, and if your code runs the fastest when I check it you also get a bonus point. (ties mean everyone who tied gets the bonus point although exact duplicate answers wont count)

Ill be posting a leaderboard that will show the people who have the most points every month

Submissions will be open for a week


As a new hire of bracket inc., you have been tasked with getting rid of excess brackets lying around the facility. You must simplify a series of brackets so that only brackets that dont have a match remain (a match is an opening and closing bracket of the same type beside each other). The final result should have no matches

As an example for the input [(({})({)(()}] the expected output would be [(({)(}]

These are the valid types of brackets: (){}[]

Your system will be tested against 10 different unknown test cases before it is unleashed on the facility. In order to complete this task you must pass all of the test cases.

Any programming language may be used and to submit an answer reply on this post with the code and the language you coded it in

Edit: Clarification, you must take input in from the user using the program instead of them being hardcoded. (makes it easier to test)

  • SleveMcDichael
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    Here’s an entry in Rust, though it feels quite a bit like cheating:

    fn main() {
        let mut a = std::env::args().skip(1).next().unwrap();
        println!("{}", f(&mut a));
    }
    
    
    fn f(a: &mut String) -> String {
        let mut b = String::new();
    
        while *a != b {
            b = a.clone();
            *a = a.replace("{}", "").replace("()", "").replace("[]", "");
        }
    
        return b;
    }
    

    edit: added main function to take cli input.

    edit2: a rust based stack implementation: https://pastebin.com/FgfuxxRV

    • AtegonOPMA
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      10/10 Test cases passed

      • Time: 4.472s
      • Characters: 290

      Yeah haha, its fair game. Theres a reason this is classified under easy

      • SleveMcDichael
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Time: 4.472s

        Ough. Those must be some hefty test cases, even the deepest ones I tested (250 loops) completed in less than a tenth of a second. If its possible I may try to find a faster solution and resubmit later…

        • AtegonOPMA
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          1 year ago

          Might be an issue with the system im using to test. Doing it through a site but I can set up an actual testing system and run it through it for the final results. Time was solidly around 500ms even with a small test case

          • huluvu
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            It’s probably adding compilation time, because a system that runs my python regex in 40ms should probably run this rust program in less than 1ms