Skip to content
Related Articles

Related Articles

Improve Article

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
  2. Key metrics about your project i.e. how much load it handled etc.
  3. If you are storing same data in separate DBs how will you keeping them in sync.
  4. If you are to write your project from scratch what will you change?

 

If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course. In case you are prepared, test your skills using TCS, Wipro, Amazon. GoogleE-Litmus and Microsoft Test Serieses.

My Personal Notes arrow_drop_up
Recommended Articles
Page :