Add coding exercises for Facebook interviews
Add attempts at solving coding problems to Briefcase.
This commit is contained in:
		
							parent
							
								
									d2d772e43e
								
							
						
					
					
						commit
						aa66d9b83d
					
				
					 66 changed files with 2994 additions and 0 deletions
				
			
		
							
								
								
									
										29
									
								
								scratch/facebook/inflight-entertainment.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								scratch/facebook/inflight-entertainment.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | |||
| from random import choice | ||||
| from utils import init_table | ||||
| 
 | ||||
| def get(movie, seeking): | ||||
|     return any([movie in xs for xs in seeking.values()]) | ||||
| 
 | ||||
| def set_complement(movie, seeking): | ||||
|     for duration, xs in seeking.items(): | ||||
|         seeking[duration].add(duration - movie) | ||||
| 
 | ||||
| def choose_movies(tolerance, duration, movies): | ||||
|     seeking = {duration + i: set() for i in range(-1 * tolerance, tolerance + 1)} | ||||
|     for movie in movies: | ||||
|         if get(movie, seeking): | ||||
|             return movie, duration - movie | ||||
|         else: | ||||
|             set_complement(movie, seeking) | ||||
|     return None | ||||
| 
 | ||||
| tolerance = 20 | ||||
| duration = choice([1, 2, 3]) * choice([1, 2]) * choice([15, 30, 45]) | ||||
| movies = [choice([1, 2, 3]) * choice([15, 30, 45]) for _ in range(10)] | ||||
| print("Seeking two movies for a duration of [{}, {}] minutes".format(duration - tolerance, duration + tolerance)) | ||||
| print(movies) | ||||
| result = choose_movies(tolerance, duration, movies) | ||||
| if result: | ||||
|     print("{} + {} = {}".format(result[0], result[1], duration)) | ||||
| else: | ||||
|     print(":( We're sad because we couldn't find two movies for a {} minute flight".format(duration)) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue