阅读本文大概需要3.6分钟
Python语言非常优美,也非常强大,语法简洁而多变!有点像水无常形,兵无常势,对于同一个问题有多种解法,你不信,今天我们就来看看下面这2道题目的多种解法.也许会对学Python有启发~~
题目1:
1.出现1次的数字
给定一个数组里面有一串数字,其中有2个数字只出现了1次,剩下的数字出现2次!要求返回只出现1次的数字的和!比如repeats([4,5,7,5,4,8]) = 15,因为7和8数字出现1次,它的和为15
题目2:
2.寻找有趣的数字
89 --> 8¹ + 9² = 89 * 1
695 --> 6² + 9³ + 5⁴= 1390 = 695 * 2
46288 --> 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288 * 51
一个整数型数字,比如是(abcd都是数字)和有一个正整数p,我们希望能找到一个正整数k,数字的p的连续幂的的总和等于k * n。
简单的说 : (a ^ p + b ^ (p+1) + c ^(p+2) + d ^ (p+3) + ...) = n * k
如果能找到我们返回k,找不到我们返回-1
上面2道题不是很难,如果想自己动手做一下的话,请不要继续看下面的答案!
题目1:答案
1).解法一
2).解法二
3).解法三
4).解法四
5).解法五
6).解法六
7).解法7
上面的7种解法,其实可以大概分为4类:
用列表的count 属性
用轮子库collection
用set属性
用高阶函数filter,或者推导列表
题目2:答案
8).解法一
9).解法二
10).解法三
历史人气文章
领取专属 10元无门槛券
私享最新 技术干货