Bracket Inc. wants to ship out new products using their excess brackets. They have tasked you with generating every possible assortment of brackets for some n brackets where the brackets will match

  • A bracket match is an opening and closing version of the same kind of bracket beside each other ()
  • If a bracket matches then outer brackets can also match (())
  • n will be an even number
  • The valid brackets are ()[]{}

For example for n = 4 the options are

  • ()()
  • (())
  • [][]
  • [[]]
  • {}{}
  • {{}}
  • []()
  • ()[]
  • (){}
  • {}()
  • []{}
  • {}[]
  • ({})
  • {()}
  • ([])
  • [()]
  • {[]}
  • [{}]

You must accept n as a command line argument (entered when your app is ran) and print out all of the matches, one per line

(It will be called like node main.js 4 or however else to run apps in your language)

You can use the solution tester in this post to test you followed the correct format https://programming.dev/post/1805174

Any programming language may be used. 2 points will be given if you pass all the test cases with 1 bonus point going to whoevers performs the quickest and 1 for whoever can get the least amount of characters

To submit put the code and the language you used below

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

    I have a concern. I don’t think the tester can accurately test this problem. I could be wrong though

    1. Because test cases are per line(in that they are separated by \r\n), you can’t necessarily have a multi-line solution, like most outputs will be \r\n for a print line function. If \n by itself is ok its easy enough, but…
    2. It checks strict equality with the solution, so the order your algorithm solves it in must be exactly the same as the test case. Its not impossible to do, but would probably require some q&a to solve exact order.
    • AtegonOPMA
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Yeah ill have to push an update to it. I’ll likely check accuracy manually and just use it to calculate the runtime to deal with the random ordering or I can do some sort of formatting that handles that

      • oessessnex
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        You can sort the lines alphabetically before comparing.

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

          True, would be a simple way to solve it. Will get that in