最直观的想法,先记录每个字符出现的次数,再找到第一个只出现一次的字符。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param str string字符串 
# @return int整型
#
class Solution:
    def FirstNotRepeatingChar(self , str: str) -> int:
        #统计每个字符出现的次数
        mydict={}
        for i in str:
            if i not in mydict:
                mydict[i]=1
            else:
                mydict[i]=mydict[i]+1
                
        #找到第一个只出现一次的字母        
        for i in range(len(str)):
            if mydict[str[i]]==1:
                return i     
        return -1