git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
		
			
				
	
	
		
			20 lines
		
	
	
	
		
			652 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
	
		
			652 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from utils import get, init_table, print_table
 | |
| 
 | |
| def longest_common_substring(a, b):
 | |
|     """
 | |
|     Computes the length of the longest string that's present in both `a` and
 | |
|     `b`.
 | |
|     """
 | |
|     table = init_table(rows=len(b), cols=len(a), default=0)
 | |
|     for row in range(len(table)):
 | |
|         for col in range(len(table[row])):
 | |
|             if b[row] == a[col]:
 | |
|                 table[row][col] = 1 + get(table, row - 1, col - 1)
 | |
|     return max([max(row) for row in table])
 | |
| 
 | |
| dictionary = ["fish", "vista"]
 | |
| result = [longest_common_substring("hish", x) for x in dictionary]
 | |
| expected = [3, 2]
 | |
| print(result, expected)
 | |
| assert result == expected
 | |
| print("Success!")
 |