题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
# -*- coding:utf-8 -*-
class Solution:
def FirstNotRepeatingChar(self, s):
# write code here
length=len(s)
if length==0:
return -1
if length==1:
return 1
#方法一
'''
d=dict()
for i in range(length):
if d.get(s[i]):
d[s[i]]+=1
else:
d[s[i]]=1
for i in range(length):
if d[s[i]]==1:
return i
return -1
'''
#方法二
for i in range(length):
left=s[:i]
right=s[i+1:]
if s[i] not in left and s[i] not in right:
return i
return -1
这题我给出了两种解法,时间复杂和空间复杂两种解法,一个是O(n)一个是O(n^2)。如果是实际需求的话我更倾向第一种写法。