Python程序:查找字符流中的第一个非重复字符?
在本文中,我们将找到字符流中的第一个非重复字符。假设我们的输入如下:
Thisisit
以下应该显示第一个非重复字符的输出:
H
使用while循环查找字符流中的第一个非重复字符
我们将通过使用循环比较每个字符与其他字符来查找第一个非重复字符:
示例
# String myStr = "thisisit" # Looping while myStr != "": slen0 = len(myStr) ch = myStr[0] myStr = myStr.replace(ch, "") slen1 = len(myStr) if slen1 == slen0-1: print ("First non-repeating character = ",ch) break; else: print ("No Unique Character Found!")
输出
No Unique Character Found! First non-repeating character = h
使用函数查找字符流中的第一个非重复字符
我们还可以创建一个自定义函数并将字符串传递给它来查找第一个非重复字符:
示例
# Custom function def RepeatingFunc(myStr): char_order = [] counts = {} for c in myStr: if c in counts: counts[c] += 1 else: counts[c] = 1 char_order.append(c) for c in char_order: if counts[c] == 1: return c return None print("First Non-Repeating Character = ",RepeatingFunc('thisisit'))
输出
First Non-Repeating Character = h
使用Counter()查找字符流中的第一个非重复字符
还可以使用Collections模块中的Counter来查找第一个非重复字符。此模块实现专门的容器数据类型,为Python的通用内置容器dict、list、set和tuple提供替代方案:
示例
from collections import Counter def repeatFunc(myStr): freq = Counter(myStr) # Traverse the string for i in myStr: if(freq[i] == 1): print(i) break # Driver code myStr = "thisisit" repeatFunc(myStr)
输出
h
广告