You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey, thanks for posting this cool repo! This comment is in regards to find_non_triplicate_int.py. I love the generality of your final solution, but I think there's a simpler intuition towards it (which I imagine is probably the "intended answer" that whoever originally posed the problem had in mind).
I reckon it like this: consider that if the problem asked us to find the non-duplicate element, we could simply XOR all the list elements together, since XORing by the same element twice leaves the running total unchanged. Since this problem asks for a non-triplicate element, we could use the same approach if we had an operation that cancels itself out when applied three times. One can then note that XOR is equivalent to doing a digital sum (i.e. addition without carrying) in base 2, leading to the realization that digital sum in base 3 fits the bill.
Long story short, one should be able to add together all the input elements in base 3 without carrying, and the result should be the non-triplicate element.
(Apologies if you already saw this, but purposely left it out because your version is more general and satisfying 😁)
The text was updated successfully, but these errors were encountered:
Thanks, Andy. I wrote my explanation the way I did because that's the way I approached the problem. I really like the approach that you describe also. I'll leave this issue open so that other people can see it.
Hey, thanks for posting this cool repo! This comment is in regards to find_non_triplicate_int.py. I love the generality of your final solution, but I think there's a simpler intuition towards it (which I imagine is probably the "intended answer" that whoever originally posed the problem had in mind).
I reckon it like this: consider that if the problem asked us to find the non-duplicate element, we could simply XOR all the list elements together, since XORing by the same element twice leaves the running total unchanged. Since this problem asks for a non-triplicate element, we could use the same approach if we had an operation that cancels itself out when applied three times. One can then note that XOR is equivalent to doing a digital sum (i.e. addition without carrying) in base 2, leading to the realization that digital sum in base 3 fits the bill.
Long story short, one should be able to add together all the input elements in base 3 without carrying, and the result should be the non-triplicate element.
(Apologies if you already saw this, but purposely left it out because your version is more general and satisfying 😁)
The text was updated successfully, but these errors were encountered: