Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
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.
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...
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?
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.
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.
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.
I removed also the
&
to take a copy of the inputs. So from the callers perspective the signature is effectively the same.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.
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.