题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
解析
- 暴力解法,时间复杂度是 。
# -*- coding:utf-8 -*-
class Solution:def FirstNotRepeatingChar(self, s):if not s:return -1n = len(s)for i in range(n):if s.count(s[i]) == 1:return ireturn -1
2. 哈希表,时间复杂度是
。
首先过一遍字符串确定每一个字符出现的次数,最后过一遍字符串确定第一个只出现一次的字符的位置。
# -*- coding:utf-8 -*-
class Solution:def FirstNotRepeatingChar(self, s):if not s:return -1ha_dict = {}n = len(s)for i in range(n):if s[i] in ha_dict.keys():ha_dict[s[i]] += 1else:ha_dict[s[i]] = 1for i in range(n):if ha_dict[s[i]] == 1:return ireturn -1