1.题目
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
2.代码
public static int FirstNotRepeatingChar(String str) {
HashSet<String> sets = new HashSet<>();
List<String> list = new ArrayList<>();
List<Integer> list1 = new ArrayList<>();
for (int i=0;i<str.length();i++){
String t = str.substring(i,i+1);
if (sets.contains(t)){
if (list.contains(t)){
int w = list.indexOf(t);
list.remove(t);
list1.remove(w);
}
}else{
sets.add(t);
list.add(t);
list1.add(i);
}
}
if (list1.size()>0){
return list1.get(0);
}else{
return -1;
}
}