Android & iPhone apps are coming soon. Log in for a plan and reminders made for you →

Problem 174 of 198HardLeetCode

Distinct Subsequences

Dynamic Programming

Asked at 10 companies

3 recent

  • Amazon
  • Microsoft
  • Meta
  • Swiggy
  • Meesho
  • Salesforce
  • Coupang
  • Zoho
  • Bloomberg
  • Google

Community-reported · source · updated 2026-10-08. ● asked in the last 6 months.

  1. 1Basics
  2. 2Paper
  3. 3Code it
  4. 4Watch
  5. 6Accepted
  6. 7Review

Go step by step: try it yourself before the video and the visual. Progress saves on this device.

0 / 160 pointsSolved (Hard) 0/70Reviews 0/50Mastered 0/25Practice steps 0/15

Step 1

Know these before you start

Practise each one here, or tick what you already know

Concept video
Learn ›Practise ✎Learn ›Practise ✎Learn ›Practise ✎

Builds on: Recursion: the base case and the call stack

Step 2

Try it on paper

5–10 minutes, no code yet

In the wild · Spell check and diff: “Did you mean…?” compares words with edit distance, and diff tools align two files with longest common subsequence. Both fill a DP table.

About this problem

Break a problem into overlapping subproblems and reuse their answers.

Read the full statement and examples on LeetCode, try it for 20–30 minutes, then come back for the walkthrough.

  1. Example 1

    Input
    s = "rabbbit"t = "rabbit"
    Output
    3
  2. Example 2

    Single character
    Input
    s = "aaa"t = "a"
    Output
    3
  3. Example 3

    Input
    s = "abc"t = "abcd"
    Output
    0

Code it here

Tab indents · ⌘/Ctrl+Enter runs · Esc leaves the editor

Step 6

Get it accepted

All test cases pass

Step 7

Review it so it sticks

Re-solve from memory after

The step that matters most: without reviews most of a solved problem fades within weeks. Three short re-solves, each just as you start to forget, are what make it yours.

Your notes

Three lines in your own words. They come back with this problem's reviews, so you can check yourself after recalling the solution.

Solve it yourself before you look

Reading the solution first feels like progress, but it makes the next similar problem — and the interview version — much harder, because you skipped the part where you figure it out. Give it an honest 20–30 minutes. Stuck? Re-read the pattern, watch the concept video, or try the brute force first.

Hidden: optimal solution

Stuck? One hint at a time.

    Srujan's notes aren't here yet. When he solves this one in his journal, his own writeup and solutions show up on this page too.