在本文中,我们将使用List Comprehension和OrderedDict了解Python中的第K个非重复字符。为此,我们借助Python中可用的内置构造。
1. First, we form a dictionary data from the input. 2. Now we count the frequency of each character. 3. Now we extract the list of all keys whose value equals 1. 4. Finally, we return k-1 character.
from collections import OrderedDict import itertools def kthRepeating(inp,k): # returns a dictionary data dict=OrderedDict.fromkeys(inp,0) # frequency of each character for ch in inp: dict[ch]+=1 # now extract list of all keys whose value is 1 nonRepeatDict = [key for (key,value) in dict.items() if value==1] # returns (k-1)th character if len(nonRepeatDict) < k: return 'no ouput.' else: return nonRepeatDict[k-1] # Driver function if __name__ == "__main__": inp = "nhooo" k = 3 print (kthRepeating(inp, k))
输出结果
a
在本文中,我们使用List Comprehension和OrderedDict在Python中找到了第K个非重复字符。