Sunday, December 4, 2016

Top 30 Microsoft Interview Questions for Software Development Engineers (SDE)

In this article, I am going to some frequently asked Microsoft Interview Questions for their Software Development Engineer role. I am mostly sharing technical questions which are based upon Data structure and Algorithms, and Software design. They don't put any restriction on any programming language, which means you are free to solve these problems using C, C++, Java or Python. If you are preparing for Microsoft Interview then these questions can give you some idea about the level of knowledge you need to clear the interview. Regarding how to prepare? You can take help from standard data structure algorithm books or you can use cracking the code interview book, which contains frequently asked questions from Google, Amazon, Apple, Facebook and, of course, Microsoft. For more comprehensive preparation see the recommended books at the bottom of this article.

Microsoft Interview Questions for Software engineerComing back to Software Development Engineer, Microsoft has different levels in their SDE positions e.g.
  • 59-60 SDE
  • 61-62 SDE II
  • 63-64 Senior SDE
  • 65-67 Principal SDE
  • 68-69 Partner SDE.
  • 70 - Tech Fellow or Distinguished Engineer.

Level 70 is equivalent to VP (Vice President) on Investment banks like Citi, Morgan, Barclays and DB and equivalent to project managers and tech lead in service based companies like Infosys, TCS and Wipro.

Most Asked Interview Questions from Microsoft

Here are the 30 odd questions from various Microsoft Interviews, curated from friends, colleagues and various sources on the internet which are mostly asked for software developers. It includes questions on data structure and algorithms e.g. array, linked list, string, binary tree, stack, queue and advanced data structure like binary heap and self-balanced trees. It also includes questions from software design e.g. designing an ATM from scratch.

1) How do you check if a Binary Tree is BST or not? (answer)

2) How do you reverse linked list of size n in your favorite language? (answer)

3) How do you find an element in an array of infinite size? (solution)

4) How to remove duplicates from a string, do it in-place? (solution)

5) Given a rotated array which is sorted, how do you search for an element in it. what would be the complexity of your solution? (answer)

6) How do you find the longest substring without repeated character? (solution)

7) How do you merge two unsorted arrays in Java or C++? (answer)

8) Given two linked lists that represent two big numbers (numbers that can not be stored in an int or long), write a function that adds the numbers and store the result in a third list. (solution)

9) How would you go about designing a parking lot system, how will you design the database schema etc. (solution)

10) How do you print last 100 lines of a big file or big string in Java or C++? (solution)

11) Suppose you are getting Stream of words from upstream: mary, army, tea, java, goog, eat. Build a data structure to store these such that, if a query was made to search a word e.g. army, then it should return all the anagrams as well i.e. mary and army. (solution)

12) How do you clone a linked list with next pointer in C/C++? (solution)

13) How do connect nodes at the same level in a binary tree? (answer)

14) How do you convert the leaves of a binary tree to a link list using its right pointer?(in place) (solution)

15) How to find the least common ancestor of a binary tree or a binary search tree. (solution)

16) How do you find all substrings of a given string? (solution)

17) How do you find pairs whose sum is equal to given a number in the sorted array? (solution)

18) How do you design an ATM? How do you write test cases for your solution?

19) What is Run length encoding? Write code to implement it? (answer)

20) How do you detect the cycle in a singly linked list? (solution)

21) Given a sorted array of size n. Each element in an array is unique and lies from 1 to n+1. How do you find the missing element? what would be time and space complexity? (solution)

22) How do you check if a binary tree is balanced or not? How do you balance it? (solution)

23) How do you validate a given IP address? (answer)

24) Two of the nodes of a Binary Search tree are swapped. How do you restore the original BST? (answer)

25) Can you draw a circle without floating point arithmetic? (answer)

26) You have given inorder and preorder traversals, construct the binary tree? (solution)

27) Given a string, return the length of the longest substring which comprises of consecutive characters.
input: xyzdefg

28) Given Window of size k in an array of size n, find all the distinct element counts in those windows. (solution)

29) You have given 3 sorted arrays. Write a function to find the common element from all three arrays in O(N) time and no extra space. If there is none, return false. (solution)

30) You have given an array which has a duplicate except for two elements. Find those two elements? (solution)

That's all about the list of frequently asked Microsoft Interview Questions on Data Structure, Algorithms and Software design. Getting a Job on product based company is the dream of many Indian graduates but you need to prepare hard for that. Getting Job at Amazon, Microsoft, Google or Facebook has never been easy but a good understanding of Data Structures, Algorithms, Software design and fundamentals goes a long way.

The Coding Interview Bootcamp: Algorithms + Data Structures
Data Structures and Algorithms: Deep Dive Using Java
Algorithms and Data Structures - Part 1 and 2

1 comment :

asd said...

You should provide more detailed descriptions of the problems, it is not clear exactly what is expected for each question.

Post a Comment