Skip to content
Interview Questions Bank: 50+ Curated Practice Questions by Category

Interview Questions Bank: 50+ Curated Practice Questions by Category

DodaTech Updated Jun 20, 2026 8 min read

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

#QuestionKey Concepts
1Two SumHash map, complement lookup
2Valid PalindromeTwo pointers, string cleaning
3Merge Sorted ArrayTwo pointers from end
4Remove Duplicates from Sorted ArrayIn-place modification
5Best Time to Buy and Sell StockSingle pass, min tracking

Medium

#QuestionKey Concepts
6Longest Substring Without Repeating CharactersSliding window, hash map
73SumSorting + two pointers, deduplication
8Product of Array Except SelfPrefix/suffix products
9Group AnagramsHash map with sorted key
10Subarray Sum Equals KPrefix sum, hash map

Hard

#QuestionKey Concepts
11First Missing PositiveIn-place hashing
12Sliding Window MaximumDeque, monotonic queue
13Minimum Window SubstringSliding 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

#QuestionDifficultyKey Concepts
14Reverse Linked ListEasyIterative + recursive
15Merge Two Sorted ListsEasyDummy node, merge
16Linked List Cycle DetectionEasyFast/slow pointers
17Remove Nth Node From EndMediumDummy node, two passes
18Reorder ListMediumFind middle, reverse, merge
19Merge K Sorted ListsHardMin-heap, divide and conquer

Trees

#QuestionDifficultyKey Concepts
20Maximum Depth of Binary TreeEasyDFS recursion
21Invert Binary TreeEasyDFS swap children
22Validate Binary Search TreeMediumIn-order traversal, range check
23Binary Tree Level Order TraversalMediumBFS queue
24Serialize and Deserialize Binary TreeHardPre-order + markers
25Lowest Common AncestorMediumRecursive search
26Binary Tree Maximum Path SumHardPost-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

#QuestionDifficultyKey Concepts
27Number of IslandsMediumDFS/BFS, grid traversal
28Clone GraphMediumDFS + hash map
29Course ScheduleMediumTopological sort, cycle detection
30Word LadderHardBFS shortest path
31Pacific Atlantic Water FlowMediumReverse DFS from oceans
32Alien DictionaryHardTopological sort of chars

Dynamic Programming

#QuestionDifficultyKey Concepts
33Climbing StairsEasyFibonacci DP
34Coin ChangeMediumUnbounded knapsack
35Longest Increasing SubsequenceMediumDP + binary search
36Longest Common SubsequenceMedium2D DP table
37Word BreakMedium1D DP, substring matching
38Edit DistanceMedium2D DP, insert/delete/replace
39Maximal RectangleHardLargest 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 -1

System Design

#QuestionKey Concepts
40Design URL ShortenerHashing, key generation, database sharding
41Design Chat SystemWebSockets, message queue, presence
42Design News FeedFan-out, pull vs push, caching
43Design Rate LimiterToken bucket, sliding window, Redis
44Design Distributed CacheConsistent hashing, replication, eviction
45Design Web CrawlerBFS, URL frontier, deduplication, politeness
46Design Uber/LyftLocation 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 URL

Behavioral Questions

#QuestionSTAR Key
47Tell me about a challenging projectSituation → Task → Action → Result
48Describe a time you disagreed with a teammateConflict resolution
49What’s the biggest mistake you’ve made?Ownership and learning
50How do you handle tight deadlines?Prioritization, tradeoffs
51Tell me about a project you’re proud ofImpact, leadership
52Why do you want to work here?Research, alignment
53Describe your ideal managerCommunication, growth

Frontend-Specific

#QuestionKey Concepts
54Explain event delegationBubbling, capturing, performance
55Implement debounce/throttleClosures, timers
56Deep clone an objectJSON.parse, recursive, circular refs
57Design autocomplete componentControlled input, debounce, accessibility
58Flatten nested arrayRecursion, reduce
59Implement Promise.allPromise handling, error aggregation
60Build a data table componentVirtualization, 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

How many questions should I practice per week?
Aim for 15-20 quality questions per week (3-4 per day). Consistent daily practice beats weekend cramming.
Should I use LeetCode or a different platform?
LeetCode has the largest collection and realistic problem difficulty. Use LeetCode for practice, then do mock interviews on Pramp or interviewing.io.
Do I need to solve every question in this bank?
No. Cover all categories with 5-10 problems each. Depth in each category matters more than breadth across all 60.
How do I know when I’m ready for interviews?
When you can consistently solve medium problems in 30 minutes and explain your approach clearly without looking at solutions.
What if I can’t solve a problem in 30 minutes?
Read the solution, understand it, then close the solution and re-implement from memory. That’s more effective than staring at a blank editor.

What’s Next

TutorialWhat You’ll Learn
Mock Interview PracticeFull-length interview simulations
Salary Negotiation GuideCompensation and offer negotiation
System Design Interview PrepDesigning 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