Backend Engineer | Zenskar
JP Morgan Chase | SDE 3 | YOE 3.4
Microsoft SDE - 2 | Interview Experience | Status Pending
eBay || SWE3 Interview Experience || Bangalore
Bloomberg | Interview Experience | Senior Software Engineer | NYC | Nov 2025
SWIGGY ALL INTERVIEW QUESTIONS
Summary
I have compiled a comprehensive list of interview questions encountered during Swiggy's onsite interviews for both SDE-1 and SDE-2 roles, covering a wide range of LeetCode problems and system design challenges.
Full Experience
I've gathered these interview questions from various Swiggy SDE-1 and SDE-2 onsite rounds. This collection provides insights into the types of problems asked, encompassing classic data structures and algorithms, with direct references to many LeetCode problems, as well as several conceptual and system design questions. It serves as a valuable resource for anyone preparing for technical interviews at Swiggy.
Interview Questions (24)
Given a stream of numbers, find the nth most recently recurring number. For example, if the stream is [1, 1, 2, 3, 2, 4] and n = 2, the output should be the 2nd most recently recurring number. This problem implies tracking both frequency and recency of numbers in a stream.
There is a new alien language that uses the English alphabet. However, the order among the letters is unknown to you. You are given a list of words from the alien language's dictionary, where the words are sorted lexicographically by the rules of this new language. Derive the order of the letters in this language.
This problem typically involves finding the maximum number of non-crossing bridges that can be built between two banks of a river, given coordinates for cities on both banks. It's a classic dynamic programming problem, often solved using a variation of the Longest Increasing Subsequence algorithm.
Design a Least Recently Used (LRU) cache. Implement the LRUCache class: LRUCache(int capacity) initializes the LRU cache with positive size capacity. int get(int key) returns the value of the key if the key exists, otherwise returns -1. void put(int key, int value) updates the value of the key if the key exists. Otherwise, add the key-value pair to the cache. If the number of keys exceeds the capacity from this operation, evict the least recently used key.
Given a number, find all possible numbers that can be formed using its digits which are greater than the given number. For example, if the input is 213, the output should include 231, 312, 321. This typically involves generating permutations.
Given a binary tree and a target value, find the node value in the tree that is closest to the target value.
Given a string S, a source array source, a target array target, and an index array indices. For each i, if the substring of S starting at indices[i] matches source[i], then replace that substring with target[i]. Otherwise, do nothing. Replacements are independent and should be performed simultaneously.
Two players take turns picking one element from either end of a circular array. The goal for each player is to maximize their own score. The problem asks to find the maximum possible gain for the first player and determine if the first player always wins.