从Python中的字符流中查找第一个非重复字符
假设我们有一个字符流,或者我们可以考虑一个字符串,并且必须找到字符串中的第一个非重复字符。因此,如果字符串像“people”,则出现的第一个字母是“o”。因此,将返回索引,这里是2。如果没有这样的字符,则返回-1。
为了解决这个问题,我们将遵循以下步骤-
创建一个频率图
对于字符串中的每个字符c
如果c不在频率上,则将其插入频率,并输入值1
否则增加频率
扫描频率图,如果特定键的值为1,则返回该键,否则返回-1
例
让我们看下面的实现以更好地理解-
class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
frequency = {}
for i in s:
if i not in frequency:
frequency[i] = 1
else:
frequency[i] +=1
for i in range(len(s)):
if frequency[s[i]] == 1:
return i
return -1
ob1 = Solution()print(ob1.firstUniqChar("people"))
print(ob1.firstUniqChar("abaabba"))输入项
"people" "abaabba"
输出结果
2 -1
热门推荐
10 韩语贺卡祝福语简短版
11 良师益友祝福语简短
12 春节拜年祝福语儿童简短
13 2026新年祝福语简短语
14 周二祝福语大全简短
15 免费生日祝福语简短独特
16 亲戚送行祝福语简短精辟
17 写生日祝福语简短唯美
18 今年节日祝福语简短