剑指offer_第一个只出现一次的字符

来源:互联网 发布:大数据商业计划书 编辑:程序博客网 时间:2024/06/18 00:55
/*在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置*/import java.util.ArrayList;import java.lang.Character;class  FirstNotRepeatingChar{public static int firstNotRepeatingChar(String str) {if (str==null||str.length()<=0){return -1;}for (int i=0; i<str.length(); i++){char c=str.charAt(i);if (str.indexOf(c)==str.lastIndexOf(c))return i;}return 0;    }public static int firstNotRepeatingChar2(String str) {if (str==null||str.length()<=0){return -1;}int[] countOfEachChar=new int[123];//z的ASCII码为122for (int i=0; i<str.length(); i++){countOfEachChar[str.charAt(i)]++;}for (int i=0; i<str.length; i++){if (countOfEachChar[str.charAt(i)]==1){return i;}/*if (countOfEachChar[i]==1){return str.indexOf((char)i);}//这样写的话google返回的是e的位置,因为是按照countOfEachChar数组从前到后遍历的,不对*/}return 0;    }public static void main(String[] args) {System.out.println(firstNotRepeatingChar2("google"));}}

原创粉丝点击