tvl-depot/deepmind/which-appears-twice.py
William Carroll 91811236a5 Complete which-appears-twice
Solves the InterviewCake.com problem that asks us to write a function that
returns the number, y, that occurs twice in a list, xs, where xs is an unsorted
list of integers from 1..n with a length of n + 1.
2020-01-22 11:06:10 +00:00

29 lines
656 B
Python

import unittest
def find_repeat(xs):
n = max(xs)
expected_sum = (n + 1) * n / 2
actual_sum = sum(xs)
return actual_sum - expected_sum
# Tests
class Test(unittest.TestCase):
def test_short_list(self):
actual = find_repeat([1, 2, 1])
expected = 1
self.assertEqual(actual, expected)
def test_medium_list(self):
actual = find_repeat([4, 1, 3, 4, 2])
expected = 4
self.assertEqual(actual, expected)
def test_long_list(self):
actual = find_repeat([1, 5, 9, 7, 2, 6, 3, 8, 2, 4])
expected = 2
self.assertEqual(actual, expected)
unittest.main(verbosity=2)