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

	}

}

  

原文地址:https://www.cnblogs.com/kexiblog/p/11152265.html