阅读本文大概需要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).解法三
这3种解法我最喜欢第一种,简洁高效! 大家看完这些解法之后是不是也脑洞大开,以上的解法有一些是我自己的答题,有一些非我原创,来自大名鼎鼎的code kaka,codewar这些网站,上面的牛人很多,可以借鉴和学习!
菜鸟学Python入门教程大盘点
同学,学Python真的不能这样学
超酷!我不写一行代码,爬取GitHub上几万的Python库
用Python破解微软面试题|24点游戏
2道极好的Python算法题|带你透彻理解装饰器的妙用
一道Google的算法题 |Python巧妙破解
长按二维码,关注【菜鸟学python】
本篇文章来源于: 菜鸟学Python
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如果你想使用Python生成验证码,你必须阅读这篇文章12/05
- ♥ 什么是python格式09/01
- ♥ python3中哪个库可以实现格式美化?12/07
- ♥ Python 中有枚举类型吗?12/13
- ♥ python识别生僻汉字11/25
- ♥ 如何在python中做评论11/10
内容反馈