字符串中的第一个唯一字符

字符串中的第一个唯一字符
思路:基于映射的有AVL或红黑树,扫描字符串,记录每个字符出现的次数,再次扫描,找到第一个频率为1的字符,将其键值对的索引返回。
思路:创建一个int型数组,数组每一位对应a-z 26个小写英文字母的频率,返回频率为1时的索引
a b c d e f g h i…
[ 0,3,0,5,6,1,8,9…]

class Solution {
    public int firstUniqChar(String s) {
        int[] fre=new int[26];//声明一个数组代替映射
        for(int i=0;i<s.length();i++){
            fre[s.charAt(i)-'a']++;//将a-z的26个英文小写字母映射到0-25的索引中
            
        }
        for(int i=0;i<s.length();i++){
            if(fre[s.charAt(i)-'a']==1){//找到所遍历的字符的频率为1时,返回其索引
                return i;
            }
        }
        return -1; 
    }
}