题解 | #第一个只出现一次的字符#
第一个只出现一次的字符
http://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
我采用的方法既不是数组又不是哈希表,直接利用StringBuilder这个类自带的方法,先将String类型转换为StringBuilder类型,在for循环遍历字符串,先拿到每一个下标的字符,再在该字符串的基础上删除这个字符,最后就是查看删除之后,字符串中是否存在相同的字符,如果存在,则把删除的字符重新添加回去,继续循环,如果不存在返回下标i;
public int FirstNotRepeatingChar(String str) {
StringBuilder sb=new StringBuilder(str);
for(int i=0;i<str.length();i++){
String s=sb.charAt(i)+"";
sb.deleteCharAt(i);
if(sb.indexOf(s)<0)
return i;
sb.insert(i,s);
}
return -1;
}