Last active
August 29, 2015 14:13
-
-
Save waprin/7f29755f8b973feb7437 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Normal person mode | |
def next_server_number(l): | |
if len(l) < 1: | |
return 1 | |
for i in xrange(1, max(l)): | |
if i not in l: | |
return i | |
return max(l) + 1 | |
assert next_server_number([5, 3, 1]) == 2 | |
assert next_server_number([5, 4, 1, 2]) == 3 | |
assert next_server_number([3, 2, 1]) == 4 | |
assert next_server_number([2, 3,]) == 1 | |
assert next_server_number([2, 3]) == 1 | |
assert next_server_number([]) == 1 | |
# One liner | |
next_server_number = lambda l: next((x for x in xrange(1, max(l)) if x not in l), max(l) + 1) if len(l) > 0 else 1 | |
assert next_server_number([5, 3, 1]) == 2 | |
assert next_server_number([5, 4, 1, 2]) == 3 | |
assert next_server_number([3, 2, 1]) == 4 | |
assert next_server_number([2, 3,]) == 1 | |
assert next_server_number([2, 3]) == 1 | |
assert next_server_number([]) == 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment