可以建立字典存字符,用bool型的话空间复杂度会优化,遍历字典在时间复杂度上也会比遍历列表或者字符串更好

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param str string字符串 
# @return int整型
#
class Solution:
    def FirstNotRepeatingChar(self , str: str) -> int:
        dic = {}
        a = list(str)
        for i in str:
            if i in dic:
                dic[i] = False
            else:
                dic[i] = True
        for key, value in dic.items():
            if value:
                return a.index(key)
        return -1
        # write code here