LeetCode 828, Hard. Topics: Hash Table, String, Dynamic Programming. View on LeetCode.
Generate this problem as a practice environment: tested reference solution, 24 parametrized pytest cases, and a playground notebook:
Problem
<p>Let’s define a function <code>countUniqueChars(s)</code> that returns the number of unique characters in <code>s</code>.</p>
<ul>
<li>For example, calling <code>countUniqueChars(s)</code> if <code>s = “LEETCODE”</code> then <code>“L”</code>, <code>“T”</code>, <code>“C”</code>, <code>“O”</code>, <code>“D”</code> are the unique characters since they appear only once in <code>s</code>, therefore <code>countUniqueChars(s) = 5</code>.</li>
</ul>
<p>Given a string <code>s</code>, return the sum of <code>countUniqueChars(t)</code> where <code>t</code> is a substring of <code>s</code>. The test cases are generated such that the answer fits in a 32-bit integer.</p>
<p>Notice that some substrings can be repeated so in this case you have to count the repeated ones too.</p>
Examples
Constraints
- 1 <= s.length <= 10^5
- s consists of uppercase English letters only.
Solution
Reference implementation from solution.py on GitHub, full suite in test_solution.py:
Complexity
Last modified on September 7, 2026