题目:
387.字符串中的第一个唯一字符Given a string, find the first non-repeating character in it and return its index. If it doesn't exist, return -1.
找出字符串中的第一个唯一(不重复)字符;不存子啊返回-1
分析:
暴力破解时间复杂度依旧为O(n^2);
此外还有许多其他方法,这里就不介绍了,包括hash;
解决方案:
循环26个字母,统计每个字母出现次数为1的字母,写入按出现的index排序的数组;
然后取数组里最前面的那个;或者为空时是-1;
class Solution {public int firstUniqChar(String s) {// 创建一个记录各字母出现频率的数组int freq[] = new int[26];for (int i = 0; i < s.length(); i ++){freq[s.charAt(i) - 'a'] ++;}for (int i = 0; i < s.length(); i ++){if(freq[s.charAt(i) - 'a'] == 1){return i;}}return -1;}
}