这里采用map字典的方式其实是最方便的,但由于map是无序的,所以还需要将map中只出现一次的字符找出在原字符串的index
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param str string字符串 
# @return int整型
#
class Solution:
    def FirstNotRepeatingChar(self , str: str) -> int:
        # write code here
        mp = {}
        for i in range(len(str)):
            s = str[i]
            if mp.get(s):
                num = mp[s]
                mp[s] = num + 1
            else:
                mp[s] = 1
        index = -1
        for k in mp.keys():
            ki = str.index(k)
            if mp[k] == 1 and index == -1:
                index = ki
            elif mp[k] == 1 and ki < index:
                index = ki
        return index