Day5-First Unique Character in a String
问题描述:
Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.
从一个字符串中找到第一个唯一的字符,并且返回其下标。
Example:
s = "leetcode"
return 0.
s = "loveleetcode",
return 2.
Note: You may assume the string contain only lowercase letters.
解法:
这道题的暴力破解应该就是两重遍历吧,时间复杂度应该是O(n*n),用空间换取时间的方法就是设置一个字典存储每个字符出现的次数以及该字符第一次出现的下标,然后遍历该字典找值为1的字符返回其下标。
class Solution:
def firstUniqChar(self, s: str) -> int:
#设置字典存储每个字符的次数
result_dict = {}
for n,i in enumerate(s):
if i in result_dict:
result_dict[i][0] += 1
else:
result_dict[i] = [1,n]
print(result_dict)
for i in result_dict:
if result_dict[i][0] == 1:
return result_dict[i][1]
return -1
时间复杂度为O(n),空间复杂度为O(n)
感觉这个月出的题都是easy的题而且都是要我们用空间换时间吧。。
本文介绍了一种高效的算法,用于从字符串中查找第一个不重复的字符并返回其索引位置。通过使用字典存储字符频率和首次出现的位置,实现O(n)的时间复杂度。

被折叠的 条评论
为什么被折叠?



