Solve "cafe order checker" (again)
Perhaps my fifth iteration of solving this problem.
This commit is contained in:
		
							parent
							
								
									6ccdb06717
								
							
						
					
					
						commit
						c00eed469c
					
				
					 1 changed files with 34 additions and 0 deletions
				
			
		
							
								
								
									
										34
									
								
								scratch/facebook/interview-cake/cafe-order-checker.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								scratch/facebook/interview-cake/cafe-order-checker.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					def valid(take_out, dine_in, served):
 | 
				
			||||||
 | 
					    # edge case
 | 
				
			||||||
 | 
					    if len(take_out) + len(dine_in) != len(served):
 | 
				
			||||||
 | 
					        return False
 | 
				
			||||||
 | 
					    i = 0
 | 
				
			||||||
 | 
					    j = 0
 | 
				
			||||||
 | 
					    k = 0
 | 
				
			||||||
 | 
					    while i < len(take_out) and j < len(dine_in):
 | 
				
			||||||
 | 
					        if take_out[i] == served[k]:
 | 
				
			||||||
 | 
					            i += 1
 | 
				
			||||||
 | 
					        elif dine_in[j] == served[k]:
 | 
				
			||||||
 | 
					            j += 1
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            return False
 | 
				
			||||||
 | 
					        k += 1
 | 
				
			||||||
 | 
					    # take out
 | 
				
			||||||
 | 
					    while i < len(take_out):
 | 
				
			||||||
 | 
					        if take_out[i] != served[k]:
 | 
				
			||||||
 | 
					            return False
 | 
				
			||||||
 | 
					        i += 1
 | 
				
			||||||
 | 
					    # dine in
 | 
				
			||||||
 | 
					    while j < len(dine_in):
 | 
				
			||||||
 | 
					        if dine_in[j] != served[k]:
 | 
				
			||||||
 | 
					            return False
 | 
				
			||||||
 | 
					        j += 1
 | 
				
			||||||
 | 
					    return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					take_out = [17, 8, 24]
 | 
				
			||||||
 | 
					dine_in  = [12, 19, 2]
 | 
				
			||||||
 | 
					served   = [17, 8, 12, 19, 24, 2]
 | 
				
			||||||
 | 
					result = valid(take_out, dine_in, served)
 | 
				
			||||||
 | 
					print(result)
 | 
				
			||||||
 | 
					assert result
 | 
				
			||||||
 | 
					print("Success!")
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue