# First Unique Character in a String

Given a string s, *find the first non-repeating character in it and return its index*. If it does not exist, return -1

```
class Solution(object):
def firstUniqChar(self, s):
hset = collections.Counter(s);
# Traverse the string from the beginning...
for idx in range(len(s)):
# If the count is equal to 1, it is the first distinct character in the list.
if hset[s[idx]] == 1:
return idx
return -1 # If no character appeared exactly once...
```

## Related Problems

Given a string s, find the length of the **longest** **substring **without repeating characters.

Given a string **S** and an integer **K**, return *the length of the longest substring of* **S** *that contains at most* **K** **distinct*** characters*.

Given an integer array nums, you need to find one **continuous subarray** such that if you only sort this subarray in non-decreasing order, then the whole array will be sorted in non-decreasing order.

Return *the shortest such subarray and output its length*.

You have observations of n + m **6-sided** dice rolls with each face numbered from 1 to 6. n of the observations went missing, and you only have the observations of m rolls. Fortunately, you have also calculated the **average value** of the n + m rolls.

You are given an integer array rolls of length m where rolls[i] is the value of the ith observation. You are also given the two integers mean and n.

Return *an array of length *n* containing the missing observations such that the ***average value ***of the *n + m* rolls is ***exactly*** *mean. If there are multiple valid answers, return *any of them*. If no such array exists, return *an empty array*.

The **average value** of a set of k numbers is the sum of the numbers divided by k.

Note that mean is an integer, so the sum of the n + m rolls should be divisible by n + m.