1
2
3
4
5
6
7
8
9
|
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode"
return 0.
s = "loveleetcode",
return 2.
Note: You may assume the string contain only lowercase letters.
|
题意:找到字符串中没有重复的字符,并且这个字符是第一个出现的。题目已经给出条件:输入的字符全部是小写,所以大小写区分这些问题就不用考虑了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public
class
Solution {
public
int
firstUniqChar(String s) {
/////超时了哈哈哈哈哈哈
// int count,i;
// for(i=0;i<s.length();i++){
// count=0;
// for(int j=0;j<s.length();j++){
// if(s.charAt(i)==s.charAt(j)){
// count++;
// }
// }
// if(count==1)
// return i;
// else
// continue;
// }
// return -1;
int
[] hash=
new
int
[
26
];
for
(
int
i=
0
;i<s.length();i++){
hash[s.charAt(i)-
'a'
]++;
}
for
(
int
i=
0
;i<s.length();i++){
if
(hash[s.charAt(i)-
'a'
]==
1
){
return
i;
}
}
return
-
1
;
}
}
|
PS:额。。。。。。第一次暴力两层for循环,果然超时。
然后又是统计词频。。。。。。。。。。。。。。。。然后返回去遍历字符串找到第一个次数为1的即可。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1890911