Title: #1531 - String Compression II - LeetCode JavaScript Solutions
Open Graph Title: #1531 - String Compression II - LeetCode JavaScript Solutions
X Title: #1531 - String Compression II - LeetCode JavaScript Solutions
Description: Run-length encoding is a string compression method that works by replacing consecutive identical characters (repeated 2 or more times) with ...
Open Graph Description: Run-length encoding is a string compression method that works by replacing consecutive identical characters (repeated 2 or more times) with ...
X Description: Run-length encoding is a string compression method that works by replacing consecutive identical characters (repeated 2 or more times) with ...
Keywords:
Opengraph URL: https://leetcodejavascript.com/solutions/string-compression-ii
Domain: leetcodejavascript.com
{"@context":"https://schema.org","@type":"Code","url":"https://leetcodejavascript.com/solutions/string-compression-ii","name":"#1531 - String Compression II - LeetCode JavaScript Solutions","description":"Run-length encoding is a string compression method that works by replacing consecutive identical characters (repeated 2 or more times) with ...","programmingLanguage":"JavaScript","codeRepository":"https://github.com/JoshCrozier/leetcode-javascript","codeSampleType":"JavaScript","text":"/**\n * @param {string} s\n * @param {number} k\n * @return {number}\n */\nvar getLengthOfOptimalCompression = function(s, k) {\n const n = s.length;\n const dp = new Array(n + 1).fill().map(() => new Array(k + 1).fill(9999));\n dp[0][0] = 0;\n\n for (let i = 1; i <= n; i++) {\n for (let j = 0; j <= k; j++) {\n let count = 0;\n let deletions = 0;\n\n for (let m = i; m >= 1; m--) {\n if (s[m - 1] === s[i - 1]) count++;\n else deletions++;\n\n if (j - deletions >= 0) {\n dp[i][j] = Math.min(\n dp[i][j],\n dp[m - 1][j - deletions] + calculateEncodedLength(count)\n );\n }\n }\n\n if (j > 0) {\n dp[i][j] = Math.min(dp[i][j], dp[i - 1][j - 1]);\n }\n }\n }\n\n return dp[n][k];\n\n function calculateEncodedLength(count) {\n if (count === 0) return 0;\n if (count === 1) return 1;\n if (count < 10) return 2;\n if (count < 100) return 3;\n return 4;\n }\n};","keywords":"LeetCode 1531, #1531 - String Compression II, Hard, JavaScript solution","learningResourceType":"Code","isAccessibleForFree":true,"educationalLevel":"intermediate","interactivityType":"mixed"}
| author | LeetCodeJavascript.com |
| og:type | article |
| og:image | https://leetcodejavascript.com/og-image.jpg |
| og:site_name | LeetCode JavaScript Solutions |
| twitter:card | summary_large_image |
| twitter:url | https://leetcodejavascript.com/solutions/string-compression-ii |
| twitter:image | https://leetcodejavascript.com/og-image.jpg |
| twitter:creator | @joshcrozier |
| theme-color | #1f2937 |
Links:
| LeetCodeJavascript.com | https://leetcodejavascript.com/ |
| Star on GitHub | https://github.com/JoshCrozier/leetcode-javascript |
| Back to all solutions | https://leetcodejavascript.com |
| View on LeetCode | https://leetcode.com/problems/string-compression-ii/ |
| View on GitHub | https://github.com/JoshCrozier/leetcode-javascript/blob/master/solutions/1531-string-compression-ii.js |
| String | https://leetcodejavascript.com/tags/string |
| Dynamic Programming | https://leetcodejavascript.com/tags/dynamic-programming |
| Josh Crozier | https://joshcrozier.com |
Viewport: width=device-width, initial-scale=1.0
Robots: index, follow