我是小白,当然只能用小白的方法解题了,简单粗暴。
思路:用一个count来记录字符出现的次数,先将字符串转化成字符数组,第一层循环拿第i个字符,将第一层拿到的第i个字符分别和再次循环这个数组的每一个字符进行对比,如果发现有相同的字符,count++,break退出第二层for,继续第一层for,直到找到第一个没有重复的字符,打印i,即位置。
public class Solution { public int FirstNotRepeatingChar(String str) { if(str == null || str == ""){ return -1; } char ss[] = str.toCharArray(); char tmp; for(int i = 0; i < ss.length - 1; i++){ tmp = ss[i]; int count = 1; for(int j = 0; j < ss.length; j++){ if(i != j){ if(tmp == ss[j]){ count++; break; } } } if(count == 1){ return i; } } return -1; } }