题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置
(位置索引从0开始),若为空串,返回-1
public class Solution {
public int FirstNotRepeatingChar(String str) {
int flag = -1;
if(str.length() == 0)
return flag;
int[] cnt = new int[66];
int[] order = new int[10001];
int i;
for(i = 0; i < str.length(); i++)
{
cnt[str.charAt(i) - 'A']++;
order[str.charAt(i) - 'A'] = i;
}
for(i = 0; i < cnt.length; i++)
{
if(cnt[i] == 1)
{
flag = order[i];
break;
}
}
if(i == cnt.length)
return flag;
for(int j = i + 1; j < cnt.length; j++)
{
if(cnt[j] == 1)
{
flag = flag < order[j] ? flag : order[j];
}
}
return flag;
}
}