Salesforce Interview Question

1. represent a maze as a data structure. 2. reverse linked list 3. some question using heap 4. Design traffic management system 5. Sql advanced queries. 6. past design experience 7. API design problem

Interview Answer

Anonymous

Oct 27, 2024

maze questions I was asked on sales force: # Create an object model to represent a maze for a computer game. A maze consists of rooms and doors that connect them from future import __anotations__ from typing import List class MazeNode: def __init__(self, children: List[MazeNode] = None, blocked: bool = False, visited: bool = False): self.children = children self.blocked = blocked self.visited = visited class MazeGraph: def __init__(self, start_root: MazeNodem, end_node: MazeNodem): self.start = start_root self.end = end_node @staticmethod def is_finished(node: MazeNodem, end_node: MazeNodem) -> bool: return node == end @staticmethod def all_directions_blocked(node: MazeNodem) -> bool: return all(map(lambda c: c.blocked, node.children)) def find_maze_exit(self, current_node: MazeNode, node_list: List[MazeNode]) -> List[MazeNode]: if self.is_finished(): return node_list current_node.visited = True if !self.all_directions_blocked(current_node): for c in current_node.children: if !c.visited: return self.find_maze_exit(c, node_list + [c]) children: List[MazeNode] = [start_node, MazeNode().....] start_node: MazeNode = MazeNode(children=ch)... end_node: MazeNode = MazeNode(children=ch)... maze = MazeGraph(start_node, end_node) maze.find_maze_exit(start_node, [start_node]) # The interviewer asked for notes I will give to myself as a reviewer: # 1. line 38m try to find a way not to create new list every call # 2. is there any itertaive approach possible? # 3. maze enrichment, extendibility ## the interviewer asked me about multiple players (threads), talked about mutex/semaphore/player strategies/ maze orchestrator