[leetcode]first unique character in a string

题目描述

Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.

Examples:

1
2
3
4
5
s = "leetcode"
return 0.

s = "loveleetcode",
return 2.

Note: You may assume the string contain only lowercase letters.

解题思路和代码

首先遍历一遍字符串,用hash统计每个字符出现的次数即可,然后第二遍遍历找出第一个只出现一次的字符。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class  {
public int firstUniqChar(String s) {

int[] freq = new int[256];

for(char ch : s.toCharArray()){
freq[ch]++;
}

for(int i = 0; i < s.length(); i++){
if(freq[s.charAt(i)] == 1) return i;
}

return -1;
}
}