【发布时间】:2012-05-25 10:06:27
【问题描述】:
我正在寻找一种方法来有效地计算唯一数字。
例如:给定整数623562,返回值为4。
我目前的做法是,给定整数i,我使用len(set(str(i)))。
创建一个集合非常耗时。我要检查很多数字,所以我需要一种有效的方法。
另外,如果有人可以找到一种方法来遍历所有带有x 数字的数字而不使用
range()(和一个班轮......),我会很高兴的。使用range 时内存限制了我,因为创建了一个列表(我假设)。
【问题讨论】:
-
创建一个集合很耗时 - 谁说的?
-
当您说“很多数字”时,我们指的大概是多少?对于第二个问题,使用
xrange()。 -
如果
len(set(str(i)))对你来说太慢了,那么我认为你不能通过手动迭代数字来更快地获得它。考虑使用 pypy 或 Cython。 -
你想要高效的还是一个班轮?
-
也许标题应该是 Count unique numbers one liner (efficient) 然后
标签: python