Interval DP animated on your own string: matching ends wrap the inner palindrome (+2), otherwise drop an end — the table fills window by window.
Tip: use samples, upload, copy, download, and send-to actions inside the workspace where available.
Longest Palindromic Subsequence Visualizer is a free, browser-based tool that helps you turn raw numbers into clear charts. Interval DP animated on your own string: matching ends wrap the inner palindrome (+2), otherwise drop an end — the table fills window by window. It's built for speed and privacy: Everything runs locally in your browser — your data is never uploaded to a server. No sign-up, no installs, and no daily limits.
Visualize the dataset after it has been cleaned enough for reliable labels and numeric values.
Review the preview, copy or download the result, and keep everything local in your browser.
LCS Visualizer: Longest Common Subsequence DP table animated: diagonal extensions on matches, max-of-neighbors otherwise, then the traceback that spells out the LCS.
Open toolMatrix Chain Multiplication Visualizer: Interval DP animated: every split point k tried for every chain window, the cost table fills diagonal by diagonal, and the optimal parenthesization emerges.
Open toolAlgorithm Academy: 35+ classic algorithms animated step by step — searching, counting/radix/bucket sort, dynamic programming tables, greedy, backtracking, KMP, graph algorithms, max flow, and convex hull — with auto-play, next/prev stepping, adjustable interval, and pseudocode that highlights the running line.
Open tool| A | B | A | B | D | A | B | A | C | |
|---|---|---|---|---|---|---|---|---|---|
| A | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| B | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| A | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| B | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| D | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| A | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| B | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| A | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| C | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1Longest Palindromic Subsequence of "ABABDABAC": dp[i][j] = LPS length inside s[i..j]. Every single character is a palindrome of length 1 (the diagonal).
dp[i][i] = 1for windows of growing length:if s[i] == s[j]:dp[i][j] = dp[i+1][j-1] + 2else:dp[i][j] = max(drop left, drop right)answer = dp[0][n-1]
Interval DP: matching ends wrap the inner palindrome (+2); otherwise drop one end and keep the best.