📅  最后修改于: 2023-12-03 14:58:35.969000             🧑  作者: Mango
在一个字符串(由字母和数字组成)中,找到其中第一个只出现一次的字符,并返回该字符的下标。如果没有只出现一次的字符,则返回 -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的字符。在面试中,对哈希表的运用经常会被考察到,是一个较为常见的面试题型。