Ad
  • Default User Avatar

    it is pass-by-value since the & was removed. So the input parameters are in fact copies. The code is fuly eqivalent to the function taking const& and then making explicit copies.

  • Default User Avatar

    I don't think changing the function signature is a good idea. Parameters are modified inside the function
    and a user will get a trash instead of original strings.
    Maybe parameters were const on purpose...

  • Default User Avatar

    Wow! This one is what I was looking for. Simple and elegant. But my brains didn't even turn into this direction.
    Any chance you can go over your thinking process into figuring this out? Is it something math knowing people know?

  • Default User Avatar

    The problem states that performance matters, so I think the top spot should be the most readable solution with a O(n) complexity. I'm not saying mine should be there ;) As for the bug, I think you're being a little hard on me. The "bug" requires a string with at least 2GB of the same character (if int is 4 bytes, depends on the platform).

    Edit: I've "fixed" my solution by using string's size_type. It is slightly less readable though because now the type is unsigned.

  • Default User Avatar

    This solution is very idomatic and easily read. So it deserves it's spot at the top.

    Your solution has a hidden assumed limit and a bug on the ammount of any specific symbol appearing in the string.
    If s1 contains MAX_INT or more appearances of a single character your solution starts returning the wrong output.

  • Default User Avatar

    Yes, I saw what you did there. You have avoided explicitly generating local copies for sorting.
    Which I did in my solution so I shut up about it. In any case I like your solution for how readable it is.
    I'm still hurting for failing to find std::includes() in the docs :-) I think maybe to big for my head anyways.

  • Default User Avatar

    I removed also the & to take a copy of the inputs. So from the callers perspective the signature is effectively the same.

  • Default User Avatar

    Modified function signature removing the constness of input parameters.
    I will call this cheating just because of me being angry and envious. I never new std::includes() exists.

  • Default User Avatar

    This was my first thought, but I have decided against it.
    I'm here to practice writing easy code and use the new stuff that I have never touched in the language.