卡住了,问大家一个Python的算法问题吧
2013-06-28 18:04:36 +08:00
kunimi
有如下这样一个list - A:
[0, 0, 0, 2295, 2295, 1530, 0, 0, 0, 0, 0, 1020, 1530, 1530, 1530, 1530, 2295, 2550, 1785, 0, 0, 0, 0, 0, 1020, 1530, 1530, 1530, 1530, 2295, 2550, 0, 0, 0, 0, 0, 1275, 1530, 1530, 1530, 1530, 1530, 0, 0, 0, 0, 0, 0]
在数目不等的0中间排列着数目不等的正整数,现在需要得到:
1. 被0隔开的连续正整数的数目(不是总数,而是要得到每一组中正整数的数目,比如上面的例子中,第一组的数量为3,第二组为8)
2. 每组正整数在list中index范围,比如第一组是A[3]到A[5]
想了一个下午,虽然实现起来不难,但是都挺麻烦的,大家有没有什么好的思路?
23 条回复
xidianlz
2013-06-30 00:48:33 +08:00
试试couting sort的思想把
ivanlw
2013-06-30 02:28:52 +08:00
@
ruoyu0088 请问那个一句话的是什么语法呢
ruoyu0088
2013-06-30 09:10:17 +08:00
@
ivanlw, 用到了itertools模块,generator expression, list comprehension
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/74002
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.