📜  门|门 IT 2006 |第 67 题(1)

📅  最后修改于: 2023-12-03 14:58:35.969000             🧑  作者: Mango

门|门 IT 2006 |第 67 题

题目描述

在一个字符串(由字母和数字组成)中,找到其中第一个只出现一次的字符,并返回该字符的下标。如果没有只出现一次的字符,则返回 -1。

示例

输入: "leetcode" 输出: 0

输入: "loveleetcode" 输出: 2

解题思路

本题要求我们找到第一个只出现一次的字符,可以使用哈希表来解决。首先我们遍历字符串,把每个字符作为键,出现的次数作为值存入哈希表中。然后我们再次遍历字符串,找到第一个出现次数为1的字符即可。

代码实现
class Solution:
    def firstUniqChar(self, s: str) -> int:
        # 声明一个哈希表,存每个字符出现的次数
        char_dict = {}
        for c in s:
            char_dict[c] = char_dict.get(c, 0) + 1

        # 遍历字符串,找到第一个出现次数为1的字符
        for i in range(len(s)):
            if char_dict[s[i]] == 1:
                return i

        return -1
总结

本题考察了对哈希表的运用,通过哈希表统计每个字符出现的次数,再遍历一遍字符串即可找到第一个出现次数为1的字符。在面试中,对哈希表的运用经常会被考察到,是一个较为常见的面试题型。