Skip to main content

Plaid Coding Interview Questions

100 Plaid coding interview problems with full optimal solutions — 31 easy, 50 medium, 19 hard. Every problem ships with multiple approaches (brute-force first, then the optimal), complexity tables for each, company-specific tips on what an Plaid interviewer values, and a FAQ section.

Showing 50 problems of 100

  • #31mediumfrequently asked

    31. Add Two Numbers

    Add two numbers represented as reverse-order linked lists. Plaid asks this because adding two arbitrary-precision balances digit-by-digit with carry is exactly how their ledger code handles cents that overflow JS Number precision.

  • #33mediumsometimes asked

    33. Longest Palindromic Substring

    Find the longest palindromic substring. Plaid asks this as a 'expand around center' fluency check before harder string-canonicalization problems on merchant names.

  • #34mediumsometimes asked

    34. Container With Most Water

    Find two lines that, together with the x-axis, form the container with the most water. Plaid asks this as a two-pointer optimization classic before harder window problems on balance-history charts.

  • #35mediumfrequently asked

    35. 3Sum

    Find all unique triplets that sum to zero. Plaid asks this because three-way reconciliation across a debit, a credit, and a fee is exactly this primitive — find three rows that net to zero.

  • #36mediumrarely asked

    36. Letter Combinations of a Phone Number

    Generate all letter combinations that a phone-number string could represent. Plaid asks this as a backtracking warm-up before harder combinatorial problems on transaction-tag suggestions.

  • #37mediumsometimes asked

    37. Remove Nth Node From End of List

    Remove the nth node from the end of a linked list in one pass. Plaid asks this as a two-pointer baseline before harder windowed-removal problems on transaction-history lists.

  • #38mediumsometimes asked

    38. Generate Parentheses

    Generate all combinations of n well-formed parentheses. Plaid asks this as a backtracking pattern problem before harder nested-JSON validation work on webhook payloads.

  • #39mediumsometimes asked

    39. Swap Nodes in Pairs

    Swap every two adjacent nodes in a linked list. Plaid asks this to verify pointer-juggling fluency before harder list-restructuring problems on chronological transaction sequences.

  • #40mediumrarely asked

    40. Next Permutation

    Rearrange numbers into the lexicographically next greater permutation. Plaid asks this because deterministic enumeration of equivalent reorderings is the same primitive they use when retrying batch ETL jobs in a fixed cycle.

  • #41mediumfrequently asked

    41. Search in Rotated Sorted Array

    Search for a target in a sorted array that has been rotated. Plaid asks this because querying a circular buffer of transaction timestamps that wraps around a clock pivot is the same primitive.

  • #43mediumsometimes asked

    43. Valid Sudoku

    Determine if a 9x9 Sudoku board is valid (without solving it). Plaid asks this as a constraint-validation primitive — the same shape as their multi-constraint webhook payload validator.

  • #44mediumsometimes asked

    44. Combination Sum

    Find all unique combinations of candidates that sum to a target, where the same number may be chosen unlimited times. Plaid asks this because finding all ways to assemble a target balance from a fixed denomination set is the same primitive.

  • #45mediumsometimes asked

    45. Permutations

    Return all possible permutations of distinct integers. Plaid asks this as a backtracking warm-up before harder ordering problems on transaction-processing schedules.

  • #46mediumsometimes asked

    46. Rotate Image

    Rotate an NxN matrix 90 degrees clockwise in place. Plaid asks this because in-place 2D transforms are the same shape as their column-major to row-major balance-history transposition for charts.

  • #47mediumfrequently asked

    47. Group Anagrams

    Group anagrams together from an array of strings. Plaid asks this because grouping merchant names that share the same character profile (after normalization) is a daily reality on their merchant-deduplication pipeline.

  • #48mediumfrequently asked

    48. Maximum Subarray

    Find the contiguous subarray with the largest sum. Plaid asks this because finding the highest-net-deposit window in a transaction series uses exactly this primitive — Kadane's algorithm.

  • #49mediumsometimes asked

    49. Jump Game

    Determine if you can reach the last index of an array where each value is your max jump length. Plaid asks this as a greedy-baseline problem before harder reachability questions on retry-graph traversal.

  • #50mediumfrequently asked

    50. Merge Intervals

    Merge overlapping intervals. Plaid asks this because consolidating overlapping batch-windows (when ETL retries cover overlapping time ranges) is exactly this primitive.

  • #51mediumsometimes asked

    51. Unique Paths

    Count the number of unique paths from top-left to bottom-right of an m x n grid, moving only right or down. Plaid asks this as a DP warm-up before harder grid-DP problems on transaction-state machines.

  • #52mediumsometimes asked

    52. Minimum Path Sum

    Find the path from top-left to bottom-right with the smallest sum. Plaid asks this as a grid DP variation, mapping cleanly to lowest-cost routing in their multi-hop payment-rail graph.

  • #53mediumsometimes asked

    53. Simplify Path

    Simplify a Unix-style absolute file path. Plaid asks this as a stack warm-up before harder hierarchical-category-tree normalization problems.

  • #54mediumfrequently asked

    54. Edit Distance

    Find the minimum operations to convert one string into another (insert, delete, replace). Plaid asks this because fuzzy merchant matching uses edit distance to collapse variants like 'STARBUCKS #234' and 'Starbucks #234A' into one canonical merchant.

  • #55mediumsometimes asked

    55. Set Matrix Zeroes

    If an element in an MxN matrix is 0, zero out its entire row and column in-place. Plaid asks this because invalidating a row+column band of a cached pivot table when one cell flips is exactly this primitive.

  • #56mediumsometimes asked

    56. Search a 2D Matrix

    Search for a target in a row-sorted matrix where each row's first element is greater than the previous row's last. Plaid asks this as a binary-search-on-flattened-grid problem before harder bank-feed lookup questions.

  • #57mediumsometimes asked

    57. Sort Colors

    Sort an array of 0s, 1s, and 2s in place in one pass. Plaid asks this because partitioning a transaction stream into 'pending', 'cleared', 'failed' buckets uses exactly this Dutch National Flag primitive.

  • #59mediumsometimes asked

    59. Subsets

    Return all possible subsets (the power set) of a distinct-integer array. Plaid asks this as a combinatorial-generation warm-up before harder subset-sum reconciliation problems.

  • #60mediumsometimes asked

    60. Word Search

    Determine if a word exists in a 2D grid by traversing adjacent cells. Plaid asks this as a DFS-on-grid baseline before harder graph-traversal problems on account-link graphs.

  • #61mediumrarely asked

    61. Remove Duplicates from Sorted Array II

    Remove duplicates in-place such that each element appears at most twice. Plaid asks this as a two-pointer variant — exactly the shape they use to enforce 'at most 2 retries per transaction in the same minute' logs.

  • #62mediumrarely asked

    62. Search in Rotated Sorted Array II

    Search a rotated sorted array that may contain duplicates. Plaid asks this as a binary-search-with-ambiguity problem — exactly the shape they face when a circular log has duplicate-event timestamps.

  • #63mediumrarely asked

    63. Remove Duplicates from Sorted List II

    Delete all nodes in a sorted linked list that have duplicate values, keeping only unique values. Plaid asks this because removing transactions that have any duplicate occurrences (not keeping one) is a stricter dedup needed for audit logs.

  • #64mediumrarely asked

    64. Partition List

    Partition a linked list around a value x. Plaid asks this because partitioning a transaction stream into 'below threshold' and 'above threshold' is the same primitive.

  • #65mediumsometimes asked

    65. Decode Ways

    Count the number of ways to decode a digit string where 'A'=1 ... 'Z'=26. Plaid asks this as a DP warm-up before harder parser-state problems on variable-length transaction-code formats.

  • #66mediumsometimes asked

    66. Reverse Linked List II

    Reverse a sublist of a linked list between positions left and right. Plaid asks this as a pointer-juggling problem — exactly the shape they use when restoring a corrupted segment of a transaction-history list from a backup.

  • #67mediumrarely asked

    67. Restore IP Addresses

    Generate all valid IP addresses from a digit string. Plaid asks this as a backtracking warm-up — the same shape they use when parsing variable-length transaction codes split across delimiters.

  • #68mediumrarely asked

    68. Unique Binary Search Trees II

    Generate all structurally unique BSTs with n nodes. Plaid asks this as a recursion + memoization warm-up before harder tree-construction problems on category-tree variants.

  • #69mediumfrequently asked

    69. Validate Binary Search Tree

    Determine if a binary tree is a valid BST. Plaid asks this because validating that a freshly-built merchant-category tree obeys its strict-ordering invariant is the same primitive — bugs in the invariant cause cascading mis-classification later.

  • #71mediumsometimes asked

    71. Binary Tree Zigzag Level Order Traversal

    Return the zigzag level order traversal of a tree. Plaid asks this as a BFS variant — exactly the shape they use when alternating left-to-right vs right-to-left iteration over partitioned ledger shards.

  • #74mediumfrequently asked

    74. LRU Cache

    Design an LRU cache with O(1) get and put. Plaid asks this because their idempotency-key store and recent-transactions cache both need O(1) bounded-memory LRU semantics.

  • #75mediumfrequently asked

    75. Word Break

    Determine if a string can be segmented into a sequence of dictionary words. Plaid asks this because tokenizing a merchant string into known sub-tokens (e.g., 'AMZNMKTPLACE' -> 'AMZN' + 'MKT' + 'PLACE') is the same primitive.

  • #76mediumsometimes asked

    76. Copy List with Random Pointer

    Deep copy a linked list where each node has a random pointer to any other node. Plaid asks this because cloning an entity graph with cross-references (transactions pointing to merchants pointing to categories) uses the same pattern.

  • #77mediumfrequently asked

    77. Clone Graph

    Deep copy a connected undirected graph. Plaid asks this because their account-link graph (user -> bank -> account -> transaction) is exactly this kind of cyclic reference structure that must be cloneable for snapshot tests.

  • #78mediumsometimes asked

    78. Sort List

    Sort a linked list in O(n log n) time. Plaid asks this because sorting a stream of transactions that arrived as a linked list (from a bank-feed batch) before merging into the master ledger is exactly this primitive.

  • #79mediumsometimes asked

    79. Find Minimum in Rotated Sorted Array

    Find the minimum element in a rotated sorted array. Plaid asks this because finding the rotation pivot (e.g., the day a circular billing window restarts) is the same primitive.

  • #80mediumrarely asked

    80. Find Peak Element

    Find a peak element in an array (one whose value is strictly greater than its neighbors). Plaid asks this as a binary-search-on-properties problem — exactly the shape they use to find traffic peaks in a time-bucketed transaction-rate series.

  • #92mediumsometimes asked

    92. Insert Interval

    Insert a new interval into a sorted, non-overlapping list and merge if necessary. Plaid asks this because adding a new ETL-retry window to a sorted list of pre-existing windows is exactly this primitive.

  • #98mediumsometimes asked

    98. Recover Binary Search Tree

    Two nodes in a BST have been swapped by mistake; recover the tree without changing structure. Plaid asks this because detecting and repairing two-row swap corruption in a sorted category tree (without rebuilding) is exactly this primitive.

Plaid Coding Interview Questions — Full Solutions — InterviewChamp.AI