Skip to content

Instantly share code, notes, and snippets.

@waprin
Last active August 29, 2015 14:13
Show Gist options
  • Save waprin/7f29755f8b973feb7437 to your computer and use it in GitHub Desktop.
Save waprin/7f29755f8b973feb7437 to your computer and use it in GitHub Desktop.
# 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