第3题:字符串逆序
题目描述:
给你一个字符串 a, 请你输出逆序之后的a。
例如:a=‘xydz’
则输出:zdyx
def solve_it(a):
return ''.join(sorted(a, reverse=True)) #your answer
print(solve_it(a)) # 答案需要输出
注意:对字符串使用列表方法,返回值为列表。若将上述代码中的join函数去掉,则返回值为:
['z', 'y', 'x', 'd']
第9题:最大公约数
题目描述:
给你两个正整数a和b, 输出它们的最大公约数。
例如:a = 3, b = 5
则输出:1
示例:
输入:a = 3 b = 5
输出:1
def solve_it(a,b):
if b!=0:
return solve_it(b,a%b)
else:
return a
print(solve_it(a,b)) # 答案需要输出
在这篇博客中看到了求任意个数的最小公倍数和最大公因数的方法,原博中的注释有问题,改正后粘贴如下:
def Common_multiple(number1, number2): # 求两个数的最大公因数
while number1 % number2 != 0:
number1, number2 = number2, (number1 % number2)
return number2
def Maximum_common_divisor(*number): # 求任意多个数的最大公因数
while len(number) > 1:
number = [Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
def Minimum_common_multiple(*number): # 求任意多个数的最小公倍数
while len(number) > 1:
number = [number[i]*number[i+1]/Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
第11题:结尾0的个数
题目描述:
给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数。(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大)。
例如: L=[2,8,3,50],
则输出:2
示例:
输入:L = [4, 2, 25, 7777777, 100, 3, 77777777, 77777777, 77777777, 77777777]
输出:4
在所有数字的乘积中,每个0都是由一组2和5相乘得到的,因此本题的实质就是计算序列中因数2和5的组数。
#参考代码,如嫌啰嗦,建议删除,一行搞定
def solve_it(L):
n5, n2 = 0,0
for x in L:
xx = x
while xx%2==0:
n2 += 1
xx /= 2
while xx%5==0:
n5 += 1
xx /= 5
return n5 if n2>n5 else n2 #your answer
print(solve_it(L)) # 答案需要输出
第13题:光棍的悲伤
题目描述:
光棍们对1总是那么敏感,因此每年的11.11被戏称为光棍节。小Py光棍几十载,光棍自有光棍的快乐。让我们勇敢地面对光棍的身份吧,现在就证明自己:给你一个整数a,数出a在二进制表示下1的个数,并输出。
例如:a=7
则输出:3
示例:
输入:a = 7
输出:3
10进制转2进制的内置函数bin():
input:bin(1)
output:'0b1'
def func(n):
return True if n=='1' else False
def solve_it(a):
return len(list(filter(func,bin(a)[2:]))) #your answer
print(solve_it(a)) # 答案需要输出
第14题:Python之美
题目描述:
输出Python之禅。
注意:输出python之禅的源码即可,不要转换为英文。(小小的提示:print this.s)
import this
def solve_it():
return '' #your answer
print(solve_it()) # 答案需要输出
人当场傻掉。