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
				
			
		
							
								
								
									
										50
									
								
								scratch/facebook/language2.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								scratch/facebook/language2.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| def tokenize(xs): | ||||
|     result = [] | ||||
|     i = 0 | ||||
|     while i < len(xs): | ||||
|         curr = xs[i] | ||||
|         if curr in {'*','+'}: | ||||
|             result.append(curr) | ||||
|             i += 1 | ||||
|             continue | ||||
|         i += 1 | ||||
|         while i < len(xs) and xs[i] in {str(x) for x in range(10)}: | ||||
|             curr += xs[i] | ||||
|             i += 1 | ||||
|         result.append(int(curr)) | ||||
|     return result | ||||
| 
 | ||||
| def parse(tokens): | ||||
|     result = [] | ||||
|     series = [] | ||||
|     for token in tokens: | ||||
|         if token == '*': | ||||
|             continue | ||||
|         elif token == '+': | ||||
|             result.append(series) | ||||
|             series = [] | ||||
|         else: | ||||
|             series.append(token) | ||||
|     if series: | ||||
|         result.append(series) | ||||
|     return result | ||||
| 
 | ||||
| def product(xs): | ||||
|     result = 1 | ||||
|     for x in xs: | ||||
|         result *= x | ||||
|     return result | ||||
| 
 | ||||
| def evaluate(tree): | ||||
|     return sum([product(xs) for xs in tree]) | ||||
| 
 | ||||
| print(evaluate(parse(tokenize("2+30*8*9+10")))) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue