第一个只出现一次的字符
描述: 在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
数据范围:0≤n≤10000,且字符串只有字母组成。 要求:空间复杂度 O(n),时间复杂度 O(n)
思路:遍历字符串,把字母存入数组,并记录位置,如果字母在数组中出现过,将位置记为-1,不用再存入数组。最后遍历数组,将第一个位置不为-1的返回。如果没有,返回-1。
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param str string字符串
# @return int整型
#
class Solution:
def FirstNotRepeatingChar(self , str: str) -> int:
# write code here
str_arr = {}
for i in range(len(str)):
if str[i] in str_arr:
str_arr[str[i]] = -1
else:
str_arr[str[i]] = i
for i in str_arr:
if str_arr[i] != -1:
return str_arr[i]
return -1