使用列表推导和 OrderedDict 实现 Python 中的第 K 个非重复字符

pythonserver side programmingprogramming更新于 2025/10/26 11:56:17

在本文中,我们将学习使用列表推导和 OrderedDict 实现 Python 中的第 K 个非重复字符。为此,我们借助 Python 中内置的构造。

算法

1. 首先,我们从输入中形成一个字典数据。
2. 现在我们计算每个字符的频率。
3. 现在我们提取所有键值等于 1 的列表。
4. 最后,我们返回 k-1 个字符。

示例

from collections import OrderedDict
import itertools
def kthRepeating(inp,k):
   # 返回一个字典数据
   dict=OrderedDict.fromkeys(inp,0)
      # 每个字符的频率
   for ch in inp:
      dict[ch]+=1
   # 现在提取值为 1 的所有键的列表
   nonRepeatDict = [key for (key,value) in dict.items() if value==1]
   # 返回第 (k-1) 个字符
   if len(nonRepeatDict) < k:
      return 'no ouput.'
   else:
      return nonRepeatDict[k-1]
# 驱动函数
if __name__ == "__main__":
   inp = "tutorialspoint"
   k = 3
   print (kthRepeating(inp, k))

输出

a

结论

在本文中,我们使用列表推导和 OrderedDict 在 Python 中找到了第 K 个非重复字符。


相关文章


有用资源