符合要求的时间组合
'''
今天的题目比较有意思。
会给你一个列表,有四个数,[2,3,1,6]
你需要做的是,把这四个数字组成一个时间格式,并使得这个时间是所有组合中最晚的组合。
例如[2,3,1,6]可以组成,13:26,16:23等等,但是最晚的时间是23:16。所以请返回23:16这个结果。
如果四个数无法组成时间格式,返回""。
答案一样会延迟放出。你猜我到底是会还是不会呢?
解题思路
1)四个数字中必须有两个数据小于等于2,才能组成时间格式(小时是有0,1,2这三个数字中任一两个组成)
2)[2,3,1,6]*[2,3,1,6]的permutations 排列
3)在组成的排列中找最大的时间为小时的组合且剩下的两个数字必须有一个小于6(如果剩下的两个数字均大于6 ,则无法组合为分;例如2,1,6,6 不能为21:66
必须为16:26)
'''
import itertools
def late_clock(list):
compose = itertools.permutations(list, 2)
max_local = 0
max_global = 0
list_end1 = []
list_end2 = []
for each in compose:
list_each = list.copy()
list_each.remove(each[0])
list_each.remove(each[1])
sum1 = each[0] * 10 + each[1]
if sum1 < 24 and min(list_each) < 6:
if max_local <= sum1:
max_local = sum1
list_end1 = each[0:2]
list_end2 = list_each[0:2]
if max_global < max_local:
max_global = max_local
list_end1 = each[0:2]
list_end2 = list_each[0:2]
if(len(list_end1)!=0):
hour = list_end1[0] * 10 + list_end1[1]
list_end2.sort()
minute = list_end2[1] * 10 + list_end2[0]
if minute > 60:
minute = list_end2[0] * 10 + list_end2[1]
result = str(hour) + ':' + str(minute)
return result
else:
return ''
def assert_equals(funs,target,*args):
if(funs == target):
print("SUCC")
else:
print("FAIL ! {0} not eaqual{1}".format(funs,target))
assert_equals(late_clock([9, 1, 2, 5]), '21:59')
assert_equals(late_clock([0, 2, 2, 2]), '22:20')
assert_equals(late_clock([9, 0, 1, 1]), '19:10')
assert_equals(late_clock([2, 3, 2, 4]), '23:42')
assert_equals(late_clock([1, 2, 8, 9]), '19:28')
assert_equals(late_clock([4, 7, 8, 9]), '')
题目地址:
https://fishc.com.cn/forum.php?mod=viewthread&tid=86832&ctid=588
找字符串的不同
'''
这题算明天的。星期天来点简单的。
春天到了,树上的小鸟总是叫个不停。
男生叫起来'Ha',女生叫起来'ha',男生一句女生一句但是一句随便叫几声。
好了,现在请你根据叫声,算出有几只小鸟。
给出一个函数:def kooka_counter(laughing),返回小鸟的数量。
例如:HaHaHahahaHaHa 分段为: 男 HaHaHa 女 haha 男 HaHa,所以这是3只。返回是3。
'''
'''
解题思路:
1、定义一个变量temp存在每次更新的叫声例如第一次为Ha,如果发现变化了那么temp= ha
2、定义一个变量count,每次temp变量就+1
'''
def kooka_counter(laughing):
temp = ''
count = 0
for i in range(0,len(laughing),2):
if temp != laughing[i:i+2]:
temp = laughing[i:i+2]
count += 1
return count
print(kooka_counter("hahahahahahahaHaHa"))
题目地址:
https://fishc.com.cn/forum.php?mod=viewthread&tid=86873&ctid=588