暴力破解,用python写个字典,然后查一下就好了,需要遍历整个字符串,时间复杂度o(n)
# -*- coding:utf-8 -*-
class Solution:
def FirstNotRepeatingChar(self, s):
# write code here
dict = {}
for i in s:
if i not in dict:
dict[i] = 1
else:
dict[i] += 1
for i in range(len(s)):
if dict[s[i]] == 1:
return i
return -1
这python的优势就很明显了,然后用java实现的话,就用hash表吧,和字典异曲同工
import java.util.LinkedHashMap;
public class Solution {
public int FirstNotRepeatingChar(String str) {
if(str == null){
return -1;
}
LinkedHashMap<Character,Integer> map = new LinkedHashMap<Character,Integer>();
for(int i = 0;i < str.length();i++){
if(map.containsKey(str.charAt(i))){
int time = map.get(str.charAt(i));
map.put(str.charAt(i),++time);
}else{map.put(str.charAt(i),1);}
}
for(int c = 0; c < str.length();c++){
if (map.get(str.charAt(c)) == 1){
return c;
}
}return -1;
}
}