# 828. Count Unique Characters of All Substrings of a Given String (H)

Let's define a function `countUniqueChars(s)` that returns the number of unique characters on `s`.

* For example, calling `countUniqueChars(s)` if `s = "LEETCODE"` then `"L"`, `"T"`, `"C"`, `"O"`, `"D"` are the unique characters since they appear only once in `s`, therefore `countUniqueChars(s) = 5`.

Given a string `s`, return the sum of `countUniqueChars(t)` where `t` is a substring of `s`.

Notice that some substrings can be repeated so in this case you have to count the repeated ones too.

&#x20;

**Example 1:**

```
Input: s = "ABC"
Output: 10
Explanation: All possible substrings are: "A","B","C","AB","BC" and "ABC".
Evey substring is composed with only unique letters.
Sum of lengths of all substring is 1 + 1 + 1 + 2 + 2 + 3 = 10
```

**Example 2:**

```
Input: s = "ABA"
Output: 8
Explanation: The same as example 1, except countUniqueChars("ABA") = 1.
```

**Example 3:**

```
Input: s = "LEETCODE"
Output: 92
```

&#x20;

**Constraints:**

* `1 <= s.length <= 105`
* `s` consists of uppercase English letters only.

### Solution:

Similar as LC 42

<https://www.youtube.com/watch?v=v0iZs3-_1c4><br>

<https://www.youtube.com/watch?v=eN8zATT702M>\
<https://leetcode.com/problems/count-unique-characters-of-all-substrings-of-a-given-string/discuss/1505263/Single-pass-O(n)-time-and-O(1)-space-solution-with-detailed-explanation/115166>
