题目:
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;
}
}
本文介绍了一种寻找字符串中第一个不重复字符的方法,并提供了一个Java实现方案。通过遍历字符串统计每个字符出现的次数,进而确定首个唯一字符的位置。
334

被折叠的 条评论
为什么被折叠?



