Interview Question
Software EngineersCountry: United States
def loop_finder(direction_list):
direction_dict = {}
direction_dict['^'] = [0, 1]
direction_dict['V'] = [0, -1]
direction_dict['>'] = [1, 0]
direction_dict['<'] = [-1, 0]
position = [0, 0]
past_positions = []
past_positions.append(position[:])
loops = []
for n, d in enumerate(direction_list):
position[0] += direction_dict[d][0]
position[1] += direction_dict[d][1]
if position in past_positions:
idx = past_positions.index(position)
loops.append(direction_list[idx:n+1])
past_positions[idx] = ['X', 'X']
past_positions.append(position[:])
return loops
def loop_finder(direction_list):
direction_dict = {}
direction_dict['^'] = [0, 1]
direction_dict['V'] = [0, -1]
direction_dict['>'] = [1, 0]
direction_dict['<'] = [-1, 0]
position = [0, 0]
past_positions = []
past_positions.append(position[:])
loops = []
for n, d in enumerate(direction_list):
position[0] += direction_dict[d][0]
position[1] += direction_dict[d][1]
if position in past_positions:
idx = past_positions.index(position)
loops.append(direction_list[idx:n+1])
past_positions[idx] = ['X', 'X']
past_positions.append(position[:])
return loops
Is the second element in the output supposed to be ">V<^"?
- Anonymous February 02, 2017