Files
leetcode/docs/(welcome)/hash-table/387.mdx
T

51 lines
1.0 KiB
Plaintext

---
title: LC-387
description: First Unique Character in a String
---
## Examples
| Input | Output |
| ---------------- | ------ |
| `"leetcode"` | `0` |
| `"loveleetcode"` | `2` |
| `"aabb"` | `-1` |
## Hints
<Accordion type="single">
<AccordionItem title="Constraints">
Constraints:
• `1 <= s.length <= 10^5`
• `s` consists of only lowercase English letters.
</AccordionItem>
<AccordionItem title="Problem Statement">
Given a string `s`, find the first non-repeating character in it and return its index.
If it does not exist, return `-1`.
</AccordionItem>
</Accordion>
## Solution
```js
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function (s) {
// Default for Hammer
const freq = {};
for (let c of s) freq[c] = (freq[c] || 0) + 1;
// Problem Specific
// Loop the ORIGINAL string — we want an index, so no sorting
for (let i = 0; i < s.length; i++) {
if (freq[s[i]] === 1) {
return i;
}
}
return -1;
};
```