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.
This commit is contained in:
		
							parent
							
								
									4f6191b34c
								
							
						
					
					
						commit
						91811236a5
					
				
					 1 changed files with 29 additions and 0 deletions
				
			
		
							
								
								
									
										29
									
								
								deepmind/which-appears-twice.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								deepmind/which-appears-twice.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					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)
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue