/*
在一个字符串(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码为122
for (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"));
}
}