知行编程网知行编程网  2022-03-12 14:00 知行编程网 隐藏边栏 |   抢沙发  10 
文章评分 0 次,平均分 0.0

阅读本文大概需要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道Python题10种解法


上面2道题不是很难,如果想自己动手做一下的话,请不要继续看下面的答案!


题目1:答案


1).解法一

2道Python题10种解法


2).解法二

2道Python题10种解法


3).解法三

2道Python题10种解法


4).解法四

2道Python题10种解法


5).解法五

2道Python题10种解法


6).解法六

2道Python题10种解法


7).解法7

2道Python题10种解法


上面的7种解法,其实可以大概分为4类:

  • 用列表的count 属性

  • 用轮子库collection

  • 用set属性

  • 用高阶函数filter,或者推导列表 



题目2:答案

8).解法一

2道Python题10种解法


9).解法二

2道Python题10种解法


10).解法三

2道Python题10种解法


这3种解法我最喜欢第一种,简洁高效! 大家看完这些解法之后是不是也脑洞大开,以上的解法有一些是我自己的答题,有一些非我原创,来自大名鼎鼎的code kaka,codewar这些网站,上面的牛人很多,可以借鉴和学习!


历史人气文章

菜鸟学Python入门教程大盘点

同学,学Python真的不能这样学

超酷!我不写一行代码,爬取GitHub上几万的Python库

用Python破解微软面试题|24点游戏

2道极好的Python算法题|带你透彻理解装饰器的妙用

一道Google的算法题 |Python巧妙破解


 长按二维码,关注【菜鸟学python


2道Python题10种解法




本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享