题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
package new_offer;
/**
* 在一个字符串(0<=字符串长度<=10000,全部由字母组成)
* 中找到第一个只出现一次的字符,并返回它的位置,
* 如果没有则返回 -1(需要区分大小写).
* @author Sonya
*思路:空间换时间,为每个字符计数。遍历得到那个字符。
*/
public class N34_FirstNotRepeatingChar {
public int FirstNotRepeatingChar(String str) {
char []ch=str.toCharArray();
int len=ch.length;
//if(len<=0) return -1;
int []a=new int['z'-'A'+1];
for(int i=0;i<len;i++) {
a[ch[i]-'A']++;
}
for (int i = 0; i < ch.length; i++) {
if (a[ch[i]- 'A'] == 1) {return i;}
}
return -1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
转载于:https://www.cnblogs.com/kexiblog/p/11152265.html