---
# System prepended metadata

title: LeetCode 387. First Unique Character in a String
tags: [Leetcode]

---

---
title: 'LeetCode 387. First Unique Character in a String'
disqus: hackmd
---

# LeetCode 387. First Unique Character in a String



## Description

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

## Example

Input: s = "leetcode"
Output: 0

Input: s = "loveleetcode"
Output: 2

## Constraints

1 <= s.length <= 10^5^
s consists of only lowercase English letters.

## Answer

此題可用hash table的概念來將26個英文當成index而存的值就是所計算的數量，當第一個檢查到是1的值時，其index即為答案。


```Cin=
//2021_11_17
int firstUniqChar(char * s) {
    int i = 0, len = strlen(s);
    int *cnt = (int *)malloc(sizeof(int)*26);
    for(i = 0; i< 26; i++){ cnt[i] = 0; }
    for(i = 0; i < len; i++){
        cnt[s[i] - 'a']++;
    }
    for(i = 0; i < len; i++){
        if(cnt[ s[i] - 'a' ] == 1){
            free(cnt);
            return i;
        }
    }
    free(cnt);
    return -1;
}
```



## Link
https://leetcode.com/problems/first-unique-character-in-a-string/
###### tags: `Leetcode` 
