相关疑难解决方法(0)

Python - 字典是否很难找到每个字符的频率?

我试图使用O(n)复杂度的算法在任何给定文本中找到每个符号的频率.我的算法看起来像:

s = len(text) 
P = 1.0/s 
freqs = {} 
for char in text: 
    try: 
       freqs[char]+=P 
    except: 
       freqs[char]=P 
Run Code Online (Sandbox Code Playgroud)

但我怀疑这个字典方法足够快,因为它取决于字典方法的底层实现.这是最快的方法吗?

更新:如果使用集合和整数,速度不会增加.这是因为该算法已经具有O(n)复杂度,因此不可能实现必要的加速.

例如,1MB文本的结果:

without collections:
real    0m0.695s

with collections:
real    0m0.625s
Run Code Online (Sandbox Code Playgroud)

python algorithm probability frequency

24
推荐指数
5
解决办法
5131
查看次数

是否有正确处理Unicode的STL字符串类?

我知道所有关于std :: string和std :: wstring但他们似乎并没有完全注意UTF-8和UTF-16的扩展字符编码(至少在Windows上).也不支持UTF-32.

那么有谁知道提供完整的UTF-8,UTF-16和UTF-32支持的跨平台直接替换类?

c++ unicode stl unicode-string

13
推荐指数
3
解决办法
7398
查看次数

C++ 0x中没有Unicode流吗?为什么?

今天我发现,C++标准委员会已经在第二次修订版中驳回了C++ 0x中的Unicode流支持.更多信息请参阅问题.

根据这份文件:

忽略两种新类型的流特化的基本原理是非特征类型的流没有被广泛使用,因此不清楚是否真的需要将这种非常复杂的机器的专业化数量加倍.

这个采访斯特劳斯:

显然,我们应该在标准库中拥有Unicode流和其他大量扩展的Unicode支持.委员会知道,但没有任何人有技能和时间来完成工作,所以不幸的是,这是你必须寻找"第三方"支持的众多领域之一.

我不是Unicode的专家,我想知道为什么实现Unicode流是如此困难?有什么问题呢?

c++ unicode io stream c++11

6
推荐指数
1
解决办法
833
查看次数

标签 统计

c++ ×2

unicode ×2

algorithm ×1

c++11 ×1

frequency ×1

io ×1

probability ×1

python ×1

stl ×1

stream ×1

unicode-string ×1