Ad
  • Default User Avatar

    I had a similar first approach before moving on to my final solution. One thing that could be imporved on in this solution is to use the Java StringBuilder instead of String concatenation via the + operator, as the + operator causes the loop to actually have an O(N^2) runtime.

  • Custom User Avatar

    Hi! Thanks for the reply and feedback. You're absolutely right.

  • Default User Avatar

    First: I really like the clean style of your implementation, but I won't upvote it. Here is why:

    Better use 'source.isEmpty()' instead of 'source == ""' - if at all! I don't know what the speed improvement of this precondition is anyway, but more severe is that your implementation is buggy in some corner cases. If I pass 'new String("")' as the parameter to encode, instead of '""', the code execution gets past the precondition. See http://stackoverflow.com/questions/531779/comparing-a-string-with-the-empty-string-java for that.

    Always compare Strings with equals!