A petri dish is represented as a grid of size N×M, where:
At each growth cycle, each bacterium spreads to its neighboring cells in horitzontal and vertical directions (i.e., up, down, left, right).
Write a function growth_cycle(grid) that, given an N×M matrix representing the initial state of the colony, returns the state of the petri dish after one growth cycle.
EXAMPLES
Example 1 | ||
Inital state | | After 1 cycle (new cells in boldface) |
. . . . . B . | . . . B B B B | |
. . . B . . . | B . B B B B . | |
B . . . . . . | B B . B . B . | |
. . . . . B . | B . . . B B B | |
. . . . . . . | . . . . . B . |
Example 2 | ||
Inital state | | After 1 cycle (new cells in boldface) |
. . . . . . . . | . . . B . . . . | |
. . . B . . . . | . . B B B . . . | |
. . . B . . . . | B . B B B . . . | |
B . . . . . . . | B B . B . . . . |
Example 3 | ||
Inital state | | After 1 cycle (new cells in boldface) |
. . . . . . | . B . B . . | |
. B . B . . | B B B B B . | |
B . . . . . | B B . B . B | |
. . . . . B | B . . . B B | |
. . . . . B | . . . . B B | |
. . . . . . | . . . . . B |
Observation
Important: Submit only the function. If you have a main program, comment it out or embed it inside a conditional clause if __name__ == "__main__":
>>> growth_cycle([['.', '.', '.', '.', '.', 'B', '.'], ['.', '.', '.', 'B', '.', '.', '.'], ['B', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', 'B', '.'], ['.', '.', '.', '.', '.', '.', '.']]) [['.', '.', '.', 'B', 'B', 'B', 'B'], ['B', '.', 'B', 'B', 'B', 'B', '.'], ['B', 'B', '.', 'B', '.', 'B', '.'], ['B', '.', '.', '.', 'B', 'B', 'B'], ['.', '.', '.', '.', '.', 'B', '.']] >>> growth_cycle([['.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', 'B', '.', '.', '.', '.'], ['.', '.', '.', 'B', '.', '.', '.', '.'], ['B', '.', '.', '.', '.', '.', '.', '.']]) [['.', '.', '.', 'B', '.', '.', '.', '.'], ['.', '.', 'B', 'B', 'B', '.', '.', '.'], ['B', '.', 'B', 'B', 'B', '.', '.', '.'], ['B', 'B', '.', 'B', '.', '.', '.', '.']] >>> growth_cycle([['.', '.', '.', '.', '.', '.'], ['.', 'B', '.', 'B', '.', '.'], ['B', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', 'B'], ['.', '.', '.', '.', '.', 'B'], ['.', '.', '.', '.', '.', '.']]) [['.', 'B', '.', 'B', '.', '.'], ['B', 'B', 'B', 'B', 'B', '.'], ['B', 'B', '.', 'B', '.', 'B'], ['B', '.', '.', '.', 'B', 'B'], ['.', '.', '.', '.', 'B', 'B'], ['.', '.', '.', '.', '.', 'B']]