N34_第一个只出现一次的字符
题目描述
在一个字符串(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 } }