题目描述:
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode" return 0. s = "loveleetcode", return 2.
Note: You may assume the string contain only lowercase letters.
my answer:
主要思路:
首先把字符串变成字母列表,然后遍历列表字母建立一个计数字典和索引字典,再次遍历字母列表查找第一个出现的计数为1的字母的索引
出错点:
1 得到计数字典uni和索引字典ind之后,直接在uni里查找值为1的字母,这样出错的原因是,形成计数字典之后,字母顺序已经改变,所得字母并不是第一个出现的
2 忽略了不存在的情况,对于不存在的情况,即所有计数均大于1,这里使用的判断方法是对大于1的计数,如果最后得数等于list的长度则说明不存在
3 做逻辑运算时总是写成=,应该是双等号==
知识点:
for index,t in enumerate(list) 可同时遍历list 的值和索引
for k,v in uni.items() 可同时遍历字典uni的key 与 value