class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return int整型
     */
    int FirstNotRepeatingChar(string str) {
        // write code here
        vector<int> v;
        v.resize(52,0);
        for(char& ch:str)
        {
            if('a'<=ch&&ch<='z')
            {
                v[ch-'a']+=1;
            }
            if('A'<=ch&&ch<='Z')
            {
                v[ch-'A'+26]+=1;
            }
        }
        vector<char> chs;
        for(int i=0;i<v.size();i++)
        {
            if(v[i]==1)
            {
                if(i<=25)
                {
                    char c=i+'a';
                    chs.push_back(c);
                    

                }
                else{
                    char c=i-26+'A';
                    chs.push_back(c);
                }
            }
        }
        for (auto c:str)
        {
            for(auto ch:chs)
            {
                if(c==ch)
                {
                    return str.find(c);
                }
            }
        }
        return -1;
    }
};