Ad
  • Custom User Avatar

    Quite easily. I've never had an interview question about type coercion.

  • Custom User Avatar

    Need a third vote option: "funny".

  • Custom User Avatar

    "cheating" in this context is a joke. Of course I'd use a built in method.

  • Custom User Avatar

    Nice catch. That's because (0.075).toPrecision(1) is working off a number slightly smaller than 0.075. I have updated the kata.

  • Custom User Avatar

    How is it different from the mathematical definition?

  • Custom User Avatar

    Because 0.0012 is two significant figures.

  • Custom User Avatar

    I just double checked the test cases, and couldn't see this issue. There is a test case, (99, 3) which expects "99.0", and a separate one, (98.5, 2) which expects 99.

  • Custom User Avatar

    I can confirm, it's fairly easy to construct a board that should fail, but passes this test.

    var rows = new int[][]
    {
    new int[] {4, 4, 4, 6, 7, 8, 9, 1, 2},
    new int[] {6, 7, 2, 1, 9, 5, 3, 4, 8},
    new int[] {1, 9, 8, 3, 4, 2, 5, 6, 7},
    new int[] {8, 5, 9, 7, 6, 1, 4, 2, 3},
    new int[] {4, 2, 6, 8, 5, 3, 7, 9, 1},
    new int[] {7, 1, 3, 9, 2, 4, 8, 5, 6},
    new int[] {9, 6, 1, 5, 3, 7, 2, 8, 4},
    new int[] {2, 8, 7, 4, 1, 9, 6, 3, 5},
    new int[] {4, 3, 5, 2, 8, 6, 1, 7, 9},
    };

  • Custom User Avatar

    So... it needs more test cases.

  • Custom User Avatar

    ~ is a bitwise not. It has the side effect of converting any value into an int first. Doing it twice has a similar effect as parseInt(x), except you will never get NaN.
    So

    ~~"3" === 3
    ~~"3.9" === 3
    ~~true === 1
    ~~"unparsable string" === 0
    ~~(false or NaN or undefined or null or [] or [1,2,3] or {...} ) === 0
    ~~[7] === 7
    

    In the first line of the for block, I'm using it to convert the string values to ints.
    In the third line of the for block, I'm truncating the decimal part of the division.

  • Custom User Avatar

    Heh, fun takes priority over TV any day.

    I look forward to more kata from you.

  • Custom User Avatar

    Probably shouldn't have written that comment at the top.

    I was just feeling annoyed because I'd just completed the code, clicked Attempt, and the first thing it does is moan about me not having a guard condition.


    On the topic of sanitizing input:

    External input should always be sanitized, but internal input should be correct to begin with. If it's not correct, then it's a bug in the code generating the input that should be fixed.

    Incorrect internal input should crash the entire execution path that lead to the input. The above function would crash on an empty array without the guard condition, so in this particular case, there isn't much point in a guard condition.

    Pretending it's OK, sanitizing it, and continuing is not a particularly safe way of doing it.

  • Custom User Avatar

    Nice, kata, and cute little language... Thanks for all the effort you put into making this :-)

    I'm sure I could make my solution better, but I already had to miss my favourite TV show, you bastard!

  • Custom User Avatar

    Woops, I forgot to test that a proper amount of significant figures was created for values like 0.1 with 4 sf (which is 0.1000)

  • Custom User Avatar

    Nice kata. However, the description does not say what to return when contents don't exist.

  • Loading more items...