LeetCode 387. First Unique Character in a String 题解

发布时间:2026/5/19 11:49:01

LeetCode 387. First Unique Character in a String 题解 LeetCode 387. First Unique Character in a String 题解题目描述给定一个字符串s找到它的第一个不重复的字符并返回它的索引。如果不存在则返回 -1 。示例 1输入: s leetcode 输出: 0示例 2输入: s loveleetcode 输出: 2示例 3输入: s aabb 输出: -1解题思路方法一哈希表计数统计每个字符出现的次数再次遍历字符串找到第一个出现次数为 1 的字符方法二数组计数由于字符范围有限可以使用数组代替哈希表代码实现方法一哈希表def firstUniqChar(s): from collections import Counter count Counter(s) for i, char in enumerate(s): if count[char] 1: return i return -1方法二数组def firstUniqChar(s): count [0] * 26 for char in s: count[ord(char) - ord(a)] 1 for i, char in enumerate(s): if count[ord(char) - ord(a)] 1: return i return -1复杂度分析时间复杂度O(n)空间复杂度O(1)字符集大小固定测试案例# 测试案例 1 assert firstUniqChar(leetcode) 0 # 测试案例 2 assert firstUniqChar(loveleetcode) 2 # 测试案例 3 assert firstUniqChar(aabb) -1 # 测试案例 4 assert firstUniqChar() -1总结本题是字符串处理的基础问题。关键点字符计数遍历顺序边界条件处理通过本题可以深入理解哈希表和数组在字符处理中的应用。

相关新闻