class Solution {
public:
int firstUniqChar(string s) {
// first is count, second is index
pair<int, int> arr[26] = {{0, 0}};
int n = s.size();
for(int i=0; i<n; ++i) {
int idx = s[i] - 'a';
++arr[idx].first;
arr[idx].second = i;
}
int ans = INT_MAX;
for(int i=0; i<26; ++i) {
if(arr[i].first == 1)
ans = min(ans, arr[i].second);
}
return ans == INT_MAX ? -1 : ans;
}
};