Ad
  • Custom User Avatar

    like you said, if two words have the same length. reduce will compare them by index. The first to appear will be called. In this case reason

  • Default User Avatar

    Theres an error in your code test

    Test.assertEquals(longestString('now for some reason my shoe smells funny'), "reason", "try again");

    the string lenth of reason & smells equals the same
    reason.length === smells.length

    so reason can't be the longest word by it's lone some. You should create a test that responds to the case and have coders also check for the edge case. Happy Coding

  • Custom User Avatar

    Out of curiosity I ran a performance test comparing normal division with the division by bitwise shift in this case:

    https://jsperf.com/numsum-division

    The bitwise division is a little faster.

  • Custom User Avatar

    Very clever. I like the use of the shift operator to do the division.

  • Custom User Avatar

    Very cool, thanks!

  • Custom User Avatar

    Just an alternative to shorten it a bit.

    The two cases are:

    1. The string has an even number of characters

    2. The string has an odd number of characters.

    If the string has an even number of characters we start the slicing one position early.

    We can subtract !(str.length % 2) from the starting position, str.length / 2.

    !(str.length % 2) === 1 if even, 0 if odd

  • Custom User Avatar

    Little math trick:

    The sum of the first n natural numbers is equal to n(n + 1)/2