首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2道Python题10种解法

阅读本文大概需要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).解法三

历史人气文章

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180130G05CH800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券