Interview Questions Bank: 50+ Curated Practice Questions by Category
A curated collection of 50+ interview questions organized by category with difficulty ratings, key concepts tested, and recommended approaches — designed for structured interview preparation.
What You’ll Learn
- 50+ categorized interview questions with difficulty ratings
- Key concepts tested by each question
- Recommended approaches and common pitfalls
- How to structure your preparation across categories
- Questions for coding, system design, and behavioral rounds
Why This Question Bank Matters
Random practice is inefficient. When you solve problems without a system, you miss categories, over-practice easy problems, and arrive at interviews unprepared for the specific question types your target company asks. This bank is organized by category and difficulty so you can practice systematically, track your coverage, and focus on weak areas.
DodaTech interviewers use questions similar to these when evaluating candidates for Doda Browser and Durga Antivirus Pro engineering roles.
Learning Path
flowchart LR
A[Data Structures Deep] --> B[Algorithms Deep]
B --> C[Question Bank<br/>You are here]
C --> D[Mock Interviews]
D --> E[Negotiation Guide]
style C fill:#f90,color:#fff
Arrays and Strings
Easy
| # | Question | Key Concepts |
|---|---|---|
| 1 | Two Sum | Hash map, complement lookup |
| 2 | Valid Palindrome | Two pointers, string cleaning |
| 3 | Merge Sorted Array | Two pointers from end |
| 4 | Remove Duplicates from Sorted Array | In-place modification |
| 5 | Best Time to Buy and Sell Stock | Single pass, min tracking |
Medium
| # | Question | Key Concepts |
|---|---|---|
| 6 | Longest Substring Without Repeating Characters | Sliding window, hash map |
| 7 | 3Sum | Sorting + two pointers, deduplication |
| 8 | Product of Array Except Self | Prefix/suffix products |
| 9 | Group Anagrams | Hash map with sorted key |
| 10 | Subarray Sum Equals K | Prefix sum, hash map |
Hard
| # | Question | Key Concepts |
|---|---|---|
| 11 | First Missing Positive | In-place hashing |
| 12 | Sliding Window Maximum | Deque, monotonic queue |
| 13 | Minimum Window Substring | Sliding window with counter |
Example Solution: Two Sum
def two_sum(nums, target):
"""
Given an array of integers, return indices of two numbers
that add up to target.
Time: O(n), Space: O(n)
"""
seen = {}
for i, num in enumerate(nums):
complement = target - num
if complement in seen:
return [seen[complement], i]
seen[num] = i
return []Linked Lists
| # | Question | Difficulty | Key Concepts |
|---|---|---|---|
| 14 | Reverse Linked List | Easy | Iterative + recursive |
| 15 | Merge Two Sorted Lists | Easy | Dummy node, merge |
| 16 | Linked List Cycle Detection | Easy | Fast/slow pointers |
| 17 | Remove Nth Node From End | Medium | Dummy node, two passes |
| 18 | Reorder List | Medium | Find middle, reverse, merge |
| 19 | Merge K Sorted Lists | Hard | Min-heap, divide and conquer |
Trees
| # | Question | Difficulty | Key Concepts |
|---|---|---|---|
| 20 | Maximum Depth of Binary Tree | Easy | DFS recursion |
| 21 | Invert Binary Tree | Easy | DFS swap children |
| 22 | Validate Binary Search Tree | Medium | In-order traversal, range check |
| 23 | Binary Tree Level Order Traversal | Medium | BFS queue |
| 24 | Serialize and Deserialize Binary Tree | Hard | Pre-order + markers |
| 25 | Lowest Common Ancestor | Medium | Recursive search |
| 26 | Binary Tree Maximum Path Sum | Hard | Post-order, global max |
Example Solution: Validate BST
def is_valid_bst(root):
"""
Determine if a binary tree is a valid BST.
Each node's value must be within a valid range.
Time: O(n), Space: O(h) where h is tree height.
"""
def validate(node, low, high):
if not node:
return True
if not (low < node.val < high):
return False
return (validate(node.left, low, node.val) and
validate(node.right, node.val, high))
return validate(root, float('-inf'), float('inf'))Graphs
| # | Question | Difficulty | Key Concepts |
|---|---|---|---|
| 27 | Number of Islands | Medium | DFS/BFS, grid traversal |
| 28 | Clone Graph | Medium | DFS + hash map |
| 29 | Course Schedule | Medium | Topological sort, cycle detection |
| 30 | Word Ladder | Hard | BFS shortest path |
| 31 | Pacific Atlantic Water Flow | Medium | Reverse DFS from oceans |
| 32 | Alien Dictionary | Hard | Topological sort of chars |
Dynamic Programming
| # | Question | Difficulty | Key Concepts |
|---|---|---|---|
| 33 | Climbing Stairs | Easy | Fibonacci DP |
| 34 | Coin Change | Medium | Unbounded knapsack |
| 35 | Longest Increasing Subsequence | Medium | DP + binary search |
| 36 | Longest Common Subsequence | Medium | 2D DP table |
| 37 | Word Break | Medium | 1D DP, substring matching |
| 38 | Edit Distance | Medium | 2D DP, insert/delete/replace |
| 39 | Maximal Rectangle | Hard | Largest rectangle in histogram |
Example Solution: Coin Change
def coin_change(coins, amount):
"""
Find minimum number of coins to make amount.
If impossible, return -1.
Time: O(amount * len(coins)), Space: O(amount)
"""
dp = [float('inf')] * (amount + 1)
dp[0] = 0
for coin in coins:
for a in range(coin, amount + 1):
dp[a] = min(dp[a], dp[a - coin] + 1)
return dp[amount] if dp[amount] != float('inf') else -1System Design
| # | Question | Key Concepts |
|---|---|---|
| 40 | Design URL Shortener | Hashing, key generation, database sharding |
| 41 | Design Chat System | WebSockets, message queue, presence |
| 42 | Design News Feed | Fan-out, pull vs push, caching |
| 43 | Design Rate Limiter | Token bucket, sliding window, Redis |
| 44 | Design Distributed Cache | Consistent hashing, replication, eviction |
| 45 | Design Web Crawler | BFS, URL frontier, deduplication, politeness |
| 46 | Design Uber/Lyft | Location service, matching, routing |
Example: URL Shortener Design
1. Generate short key (Base62 encoding of ID, or hash)
2. Store mapping in distributed database (Cassandra/DynamoDB)
3. Cache popular URLs (Redis)
4. Use consistent hashing to distribute keys
5. Rate limit per user to prevent abuse
6. Analytics: track clicks per short URLBehavioral Questions
| # | Question | STAR Key |
|---|---|---|
| 47 | Tell me about a challenging project | Situation → Task → Action → Result |
| 48 | Describe a time you disagreed with a teammate | Conflict resolution |
| 49 | What’s the biggest mistake you’ve made? | Ownership and learning |
| 50 | How do you handle tight deadlines? | Prioritization, tradeoffs |
| 51 | Tell me about a project you’re proud of | Impact, leadership |
| 52 | Why do you want to work here? | Research, alignment |
| 53 | Describe your ideal manager | Communication, growth |
Frontend-Specific
| # | Question | Key Concepts |
|---|---|---|
| 54 | Explain event delegation | Bubbling, capturing, performance |
| 55 | Implement debounce/throttle | Closures, timers |
| 56 | Deep clone an object | JSON.parse, recursive, circular refs |
| 57 | Design autocomplete component | Controlled input, debounce, accessibility |
| 58 | Flatten nested array | Recursion, reduce |
| 59 | Implement Promise.all | Promise handling, error aggregation |
| 60 | Build a data table component | Virtualization, sorting, filtering |
Preparation Strategy
12-Week Plan
Weeks 1-2: Arrays, Strings, Hash Maps (questions 1-13)
Weeks 3-4: Linked Lists, Stacks, Queues (14-19)
Weeks 5-6: Trees, Graphs (20-32)
Weeks 7-8: Dynamic Programming (33-39)
Weeks 9-10: System Design (40-46)
Weeks 11-12: Behavioral, Mock Interviews (47-60)Daily Practice
- 2 hours: Solve 2-3 problems from current category
- 30 minutes: Review previous problems
- 30 minutes: Mock system design or behavioral
Common Interview Question Mistakes
1. Practicing Only Easy Problems
Easy problems don’t prepare you for the medium/hard problems in real interviews.
Fix: Spend 70% of time on medium and 20% on hard problems.
2. Solving Without Time Pressure
Taking 45 minutes per problem doesn’t simulate interview conditions.
Fix: Time yourself — 20 min for easy, 35 min for medium, 45 min for hard.
3. Not Reviewing Solutions
Solving a problem once and never reviewing it wastes the learning opportunity.
Fix: Review each problem the next day. Re-solve if you can’t remember the approach.
4. Ignoring Weak Categories
Avoiding DP because it’s hard means DP questions will appear in your interview.
Fix: Practice your weakest category daily until it becomes a strength.
5. Memorizing Solutions Without Understanding
“If the problem has two strings, use DP” is not understanding.
Fix: For each problem, explain why the algorithm works and what would change if constraints changed.
6. Not Practicing Communication
Solving silently doesn’t prepare you for the interview’s interactive format.
Fix: Practice explaining your thinking aloud. Record yourself.
7. Neglecting Behavioral Prep
Assuming technical performance alone gets you the offer. Behavioral rounds can veto a hire.
Fix: Prepare 5-7 stories using the STAR format. Practice telling them naturally.
Practice Questions
1. What is the recommended ratio of easy/medium/hard problems?
20% easy, 60% medium, 20% hard. Or none easy once you can consistently solve mediums.
2. How many questions should you solve before interviewing?
150-200 high-quality problems covering all categories. Quality over quantity — understand each problem deeply.
3. How do you handle a problem you’ve never seen before?
Use the SCORE framework: Situate (understand), Consider (multiple approaches), Outline (plan), Run (code), Evaluate (test).
4. What is the most common interview question category?
Arrays and strings appear in virtually every interview, followed by trees and dynamic programming.
5. How do you track your interview preparation progress?
Track by category: number solved, average difficulty, average time, and questions missed on review.
Challenge: Pick your weakest category from the list above. Solve 10 problems from that category without looking at solutions. Time each problem. After 10, review your average time and accuracy.
FAQ
What’s Next
| Tutorial | What You’ll Learn |
|---|---|
| Mock Interview Practice | Full-length interview simulations |
| Salary Negotiation Guide | Compensation and offer negotiation |
| System Design Interview Prep | Designing scalable systems |
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-20.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro