# LeetCode: Minimum ASCII Delete Sum for Two Strings Solution

Modified version of Longest Common Subsequence problem

## Approach

Pseudo

`.css-ds3kc{display:table-row;}.css-1t8atru{display:table-cell;opacity:0.5;padding-right:var(--chakra-space-6);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:right;}1.css-2qghsv{display:table-cell;}result = totalAscii(s1, s2) - 2 * lcsInAscii(s1, s2)`

## Implementation

```1const lcsInAscii = function (text1, text2) {2  const memo = Array.from({ length: text1.length + 1 }, _ =>3    Array(text2.length + 1).fill(null)4  )5
6  const recursion = (m, n) => {7    if (memo[m][n] !== null) return memo[m][n]8
9    if (m === 0 || n === 0) return (memo[m][n] = 0)10
11    if (text1[m - 1] === text2[n - 1])12      return (memo[m][n] = text1[m - 1].charCodeAt(0) + recursion(m - 1, n - 1))13
14    return (memo[m][n] = Math.max(recursion(m, n - 1), recursion(m - 1, n)))15  }16
17  return recursion(text1.length, text2.length)18}19
20var minimumDeleteSum = function (s1, s2) {21  let totalAscii = (s1 + s2)22    .split("")23    .reduce((acc, el) => acc + el.charCodeAt(0), 0)24

Original problem

## Similar problems

Edit Distance

Longest Increasing Subsequence

Delete Operation for Two Strings

## Tags

leetcode

string

recursion

dynamic programming

## Next Post

InterviewBit: Self Permutation

Nov 6, 2022

Count number of letters

## Previous Post

LeetCode: Minimum Add to Make Parentheses Valid

Oct 26, 2022

Maintain balance, and yes, also naming variables

Search Posts