• abir_vandergriff@beehaw.org
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    Day 1 wasn’t so bad, depending on approach. People got tripped up hard with replacing strings because of the old “twone.” If you didn’t happen to do string replacements it wasn’t so bad.

    Day 3 absolutely wrecked me though - and my overall rank was still pretty significantly better than it had been on days 1 and 2.

    • whats_all_this_then
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      On the flip side, twone absolutely ruined my life. Worst part was that I was looking at it and thinking “yes I handled that edge case and am only taking the first number, why’s it not working”

      Everything else has been a breeze. I’m using typescript and it’s been chill.

    • Pluckerpluck
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      If you didn’t happen to do string replacements it wasn’t so bad.

      Yeah. I was using regex to find the numbers as a quick implementation before realizing that floor. Just switched it to use a positive lookahead to solve that issue.

      Day 3 was one of those challenges that if you thought of a good method quickly it wasn’t too bad. Ended up compiling strings and using regex again. Worked really well actually.

    • Black616Angel@feddit.de
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Not only replacing didn’t work. I did it as a regex, but Rusts regex crate only supports non-overlapping matches.

      • Faresh@lemmy.ml
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        Python’s re also only supports non-overlapping matches and only one direction, so what I did was

        spoiler

        I looked for the first digit/word using the regex. Then for the last digit/word, I inverted the string and the regex (so I was matching the words eno, owt, eerht, etc.) and took the first occurence, and inverted that in case it was a word, and then I had my last digit. I just had to pay attention to only include the |\d after inverting the regex, since d\| is not right.

        There are probably more elegant ways, but I couldn’t come up with anything as simple as this.

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

          Oh, cool, I did pretty much the same thing, just finding the words manually instead (didn’t want to use any external libraries, so I just wrote a function to search for me. Haskell doesn’t have much for OOT B functionality).