Here's my python version. I think that the list comperhension and use
of the reduce function might help with the speed. I have read that
they are supposed to be a bit faster than a standard for loop in
python. However, I worry that using reduce to raise an exception may
take away any benefit from an early exit. I doubt that python's
exception handling is all that optimized for speed.
import sys
for line in sys.stdin:
nums = line.strip().split()
try:
value = reduce(lambda x,y: 0 < abs(x-y) <= len(nums) and y or
None, [int(item) for item in nums])
except TypeError:
## early exit, reduce got an error subtracting None and int
print 'Not a match'
else:
## print match if the reduce function returns a value
## print Not a match if reduce function returns None
print '%smatch' % (not value and 'Not a ' or '')
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/