# Leetcode First-Unique-Character-In-a-String

#### 2022-06-14 13:10

---

##### Algorithms:

#algorithm

##### Data structures:

#DS #string #array #hash_table

##### Difficulty:

#leetcode #coding_problems #difficulty_easy

##### Related topics:

##### Links:

- [Link to problem](https://leetcode.com/problems/first-unique-character-in-a-string/)

  ***

### Problem

Given a string `s`, _find the first non-repeating character in it and return its index_. If it does not exist, return `-1`.

#### Examples

**Example 1:**

```markdown
**Input:** s = "leetcode"
**Output:** 0
```

**Example 2:**

```markdown
**Input:** s = "loveleetcode"
**Output:** 2
```

**Example 3:**

```markdown
**Input:** s = "aabb"
**Output:** -1
```

#### Constraints

- `1 <= s.length <= 105`
- `s` consists of only lowercase English letters.

### Thoughts

Really, really simple hash map problem.
Shouldn't have taken so much time.

> [!summary]
> Don't overlook simple problems! #tip

### Solution

```cpp
class Solution {
public:
  int firstUniqChar(string s) {
    // O(1) hashmap
    int umap[26] = {};

    int sSize = s.size();
    for (int i = 0; i < sSize; i++) {
        umap[s[i] - 'a']++;
    }

    for (int i = 0; i < sSize; i++) {
      if (umap[s[i] - 'a'] == 1) {
        return i;
      }
    }
    return -1;
  }
};
```
