Skip to content

Instantly share code, notes, and snippets.

@jonathancg90
Created December 14, 2016 03:46
Show Gist options
  • Save jonathancg90/670cf16b03590462c50b449aafdd1373 to your computer and use it in GitHub Desktop.
Save jonathancg90/670cf16b03590462c50b449aafdd1373 to your computer and use it in GitHub Desktop.
Reto #1
def main():
file = open('problem1.txt', 'r')
lines = file.readlines()
for line in lines:
line = line.rstrip()
numbers = line.split(' ')
print(" ".join(detect_cycle(numbers)))
def detect_cycle(numbers):
found = dict()
result = list()
for i, c in enumerate(numbers):
if c not in found:
found[c] = i
else:
for original_i, repeated_i in zip(range(found[c], i),
range(i, len(numbers))):
if numbers[original_i] == numbers[repeated_i]:
result.append(numbers[original_i])
else:
break
break
return result or numbers
Reto #2
def main():
file = open('problem2.txt', 'r')
lines = file.readlines()
for line in lines:
line = line.rstrip()
numbers, k = line.split(';')
numbers = numbers.split(',')
print(",".join(reverse_groups(numbers, int(k))))
def reverse_groups(numbers, k):
_reversed = list(chain.from_iterable(
map(lambda x: x[::-1],
zip(*(islice(numbers, i, None, k) for i in range(k))))))
return _reversed + numbers[len(_reversed):]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment