Related Articles

# Flipkart Interview Experience | Set 40 (For SDE 1)

• Difficulty Level : Hard
• Last Updated : 31 Jan, 2016
I was interviewed for Software Development Engineering (SDE1) role Flipkart.
Round 1: Machine Coding round: (90 minutes)
Given a binary tree as a sequence of (parent, child) tuples: (A B)(A C)(B G)(C H)(E F)(B D)(C E) Write a program to find following errors in the tree:
• E1: More than 2 children
• E2: Duplicate Tuples
• E3: Cycle present
• E4: Multiple roots
• E5: Multiple parents

Input is a expression containing parent child relations. output is Error codes or success.

Sample test cases

• Input: (A B)(A C)(B G)(C H)(E F)(B D)(C E) Output: Success
• Input: (A B)(A C)(A D) Output: E1
• Input: (A B)(A B) Output: E2
• Input: (A B)(B C)(C A) Output: E3
• Input: (A B)(C D) Output: E4
• Input: (A B)(B C)(A C) Output: E5

Solution

Code is written in node.js javascript. Tests are using mocha. Major trick in this question is that the data structure need to hold such data is not a binary tree but a graph. Or a graph with two sets of edges children and parents.

I used this DS in javascript to solve:

```function Node(data) {
this.data = data;
this.children = [];
this.parents = [];
}```
Cycle detection can be done usingĀ http://www.geeksforgeeks.org/detect-cycle-in-a-graph/

Round 2: Face to Face
1. Design a load balancer which implements following methods:
• add(n) where n is id of instance
• remove(n) where n is id of instance
• getRandom() which returns a random instance.
All these operation should be of order O(1).
Followup for this question was to change getRandom in such a way that it returns with weighted randomness rather than uniform randomness if weights is associated with instances.
2. You are given a result of cricket tournament with all the wins and losses. Print the teams in such a way that a winning team is always at the right of losing team.
Solution: Store the results as a Directed Acyclic Graph and run topological sort algo.

Round 3: Face to Face
1. Explain your projects in detail