题解 | #第一个只出现一次的字符#
第一个只出现一次的字符
http://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
建立个linkedhashmap,将String每个字符放进去,重复的字符value值大于1,再便利这个map,找到第一个value值=1的字符,再找这个字符在string中的位置 import java.util.*; public class Solution { public int FirstNotRepeatingChar(String str) { char[] p=str.toCharArray(); Map<Character,Integer>p1=new LinkedHashMap();
for(int i=0;i<p.length;i++){
if(p1.containsKey(p[i])){
p1.put(p[i],p1.get(p[i])+1);
}
else{
p1.put(p[i],1);
}
}
Set m=p1.keySet();
Iterator l=m.iterator();
while(l.hasNext()){
//第一个
char l1=(Character)l.next();
if(p1.get(l1)==1){
for(int j=0;j<p.length;j++){
if(p[j]==l1)
return j;
}
}
}
return -1;
}
}