Python中文
首页
教程
问答
标签
搜索
登录
注册
如何提高python dict的性能?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我最近用dictoionaries编写了一个python解决方案,得到了很好的结论。这个解决方案完全类似于c++中的多集解决方案。因此,我们确信逻辑是正确的,但是实现还没有达到目标。在</p> <p>理解以下代码(<a href="http://codeforces.com/contest/714/problem/C" rel="nofollow">http://codeforces.com/contest/714/problem/C</a>)的问题描述:</p> <ul> <li>对于每个数字,我们需要得到一个由0和1组成的字符串,如果数字中的第i个数字是偶数/奇数,则第i位是0/1。在</li> <li>我们需要保持与上述点给出的映射相同的数量的计数。在</li> </ul> <p>有什么提示/指针可以提高以下代码的性能?它给出了大型测试用例(<a href="http://codeforces.com/contest/714/submission/20594344" rel="nofollow">http://codeforces.com/contest/714/submission/20594344</a>)的TLE(超过时间限制)。在</p> <pre><code>from collections import defaultdict def getPattern(s): return ''.join(list(s.zfill(19))) def getSPattern(s): news = s.zfill(19) patlist = [ '0' if (int(news[i])%2 == 0) else '1' for i in range(19) ] return "".join(patlist) t = int(raw_input()) pat = defaultdict(str) # holds strings as keys and int as value for i in range(0, t): oper, num = raw_input().strip().split(' ') if oper == '+' : pattern = getSPattern(str(num)) if pattern in pat: pat[pattern] += 1 else: pat[pattern] = 1 elif oper == '-' : pattern = getSPattern(str(num)) pat[pattern] = max( pat[pattern] - 1, 0) elif oper == '?' : print pat.get(getPattern(num) , 0 ) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>由于@cdlane已经做了解释,我只需要添加对<code>getSPattern</code>的重写,我认为大部分时间都花在这里了。根据我最初的评论,这可以在<a href="https://eval.in/641639" rel="nofollow">https://eval.in/641639</a>上找到</p> ^{1}$ <p>使用zfill(18)可能会稍微节省一些时间。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在PyObj中使用respondsToSelector和performSelector
8 回答
如何在pyobj中停止线程
3 回答
如何在pyobj中生成线程
7 回答
如何在pyodbc中为记录集指定游标类型?
7 回答
如何在pyodbc中从用户处获取表名,同时避免SQL注入?
9 回答
如何在pyodbc中使用executemany运行多个SELECT查询
3 回答
如何在pyodbc中同时在n个游标上并行运行n个进程?
10 回答
如何在pyodbc中控制连接池的大小?
5 回答
如何在pyodbc中自动调用fetchall()而不进行异常处理?
10 回答
如何在pyODBC查询中参数化日期戳?
4 回答
如何在pyodbc输出转换器函数中解压sqlserver DATETIME?
9 回答
如何在pyodb中安装所有驱动程序
7 回答
如何在pyodb嵌套循环中调用不同的查询
2 回答
如何在pyomo.environ公司modu装置
1 回答
如何在Pyomoconstraints中建模逻辑或量词
5 回答
如何在Pyomo中为约束使用数组
6 回答
如何在pyomo中使用集和范围集的多级索引?
3 回答
如何在PYOMO中分配伪二进制变量
10 回答
如何在Pyomo中创建OR约束?
1 回答
如何在Pyomo中动态地将变量添加到列表中?
6 回答