387. First Unique Character in a String

Easy (Dễ) C++ Python 🔗 Xem trên LeetCode

📋 Đề Bài

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

 

Example 1:

Input: s = "leetcode"
Output: 0

Example 2:

Input: s = "loveleetcode"
Output: 2

Example 3:

Input: s = "aabb"
Output: -1

 

Constraints:

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

🧠 Thuật Toán & Kỹ Thuật

Hash Table (Bảng băm)String (Chuỗi)
⏱️ Thời gian O(n²)
💾 Không gian O(n)

💻 Lời Giải

C++ 0387-first-unique-character-in-a-string.cpp
class Solution {
public:
    int firstUniqChar(string s) {
        int cnt[26] = {0};
        for (char c : s) {
            cnt[c - 'a']++;
        }
        int n = s.size();
        for (int i = 0; i < n; ++i) {
            if (cnt[s[i] - 'a'] == 1) {
                return i;
            }
        }
        return -1;
    }
};
Python 0387-first-unique-character-in-a-string.py
class Solution:
    def firstUniqChar(self, s: str) -> int:
        cnt = defaultdict(int)
        
        for c in s:
            cnt[c] += 1
            
        for i, c in enumerate(s):
            if cnt[c] == 1:
                return i
        
        return -1