Hello guys, if you are preparing for Microsoft's Software Development Engineer interview (SDE) and looking for some good resources for your preparation then you have come to the right place. In the past, I have shared best coding interview books, courses, and websites and in this article, I am going to some frequently asked Microsoft Interview Questions and useful books and courses to prepare 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 restrictions 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.
Also, basic knowledge of essential data structure and algorithms is also very important and that's why I suggest all Java programmers join a comprehensive Data Structure and Algorithms course to improve their knowledge and algorithms skills.
Coming back to Software Development Engineer, Microsoft has different levels in their SDE positions like
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.
1) How do you check if a Binary Tree is BST or not? (answer)
2) How do you reverse the linked list of size n in your favorite language? (solution)
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 that 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 the last 100 lines of a big file or big string in Java or C++? (solution)
11) Suppose you are getting a 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 the 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)
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.
Also, basic knowledge of essential data structure and algorithms is also very important and that's why I suggest all Java programmers join a comprehensive Data Structure and Algorithms course to improve their knowledge and algorithms skills.
Coming back to Software Development Engineer, Microsoft has different levels in their SDE positions like
- 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.
30 Microsoft Interview Questions for Software Engineers
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 by software developers. It includes questions on data structure and algorithms like an 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 like designing an ATM from scratch.1) How do you check if a Binary Tree is BST or not? (answer)
2) How do you reverse the linked list of size n in your favorite language? (solution)
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 that 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 the last 100 lines of a big file or big string in Java or C++? (solution)
11) Suppose you are getting a 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 the 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 consecutive characters.
input: xyzdefg
Output:
4
defg
28) Given the 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 that 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 a 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.
Other Coding Interview Questions and Resources you may like
- 20 Software design and design pattern Interview Questions (list)
- Top 30 Array coding interview questions (list)
- Top 10 Dynamic Programming Interview Questions (DP questions)
- Top 20 String based coding Interview questions (list)
- Top 15 Data Structure and Algorithm Interview Questions (list)
- 10 Object Oriented Design Questions for interviews (ooad questions)
- 130+ Java Interview Questions with Answers (list)
- 10 Coding Questions from Programming Interviews (list)
- 50+ Multithreading Interview Questions with Answers (list)
- 25 DevOps Interview Questions with answers (DevOps questions)
- 20 Kubernetes Interview Questions with answers (Kubernetes questions)
- 15 Docker Interview Questions with answers (Docker questions)
- 30 System Design Problems and Questions for interviews (system design questions)
- 15 Microservices Interview Questions with answers (Microservices questions)
- 50 Database and SQL Interview Questions with answers (SQL questions)
You should provide more detailed descriptions of the problems, it is not clear exactly what is expected for each question.
ReplyDelete