标签:
题目:在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始。
思路:使用类似哈希表的结构,统计次数然后返回第一个出现次数为1的字符。时间和空间复杂度均为O(n)。
实现代码:
import java.util.*; public class Solution { public int FirstNotRepeatingChar(String str) { if(str == null || str.length() <= 0) return -1; int[] hashTable = new int[256]; char[] strChar = str.toCharArray(); Arrays.fill(hashTable, 0); for(char ch : strChar) { hashTable[(int)ch] ++; } for(int i=0; i<strChar.length; i++) { char ch = strChar[i]; if(hashTable[(int)ch] == 1) { return i; } } return -1; } }
标签:
原文地址:http://www.cnblogs.com/wxisme/p/5468929.html