如果在num1的任何位置有一个数字的连续三倍,并且在num2中有一个数字的连续两倍,则返回1。 如果不是这样,则返回0

'''
它接受数字num1和num2,如果在num1的任何位置有一个数字的连续三倍,并且在num2中有一个数字的连续两倍,则返回1。
如果不是这样,则返回0
例子
triple_double(451999277, 41177722899) == 1
num1有三个直的999,num2有两个直的999
triple_double(1222345, 12345) == 0
num1有直接的三重2s,但是num2只有一个2
triple_double(12345, 12345) == 0
triple_double(666789, 12345667) == 1
'''


#解法1
import itertools
def triple_double(num1, num2):
    #code me ^^
    num1_3=[k for k,v in itertools.groupby(str(num1)) if len(list(v))==3]
    num2_2=[k for k,v in itertools.groupby(str(num2)) if len(list(v))==2]
    if num1_3!=[]:
        for i in num1_3:
            if i in num2_2 :
                return 1
            else:
                return 0
    else:
        return 0

print(triple_double(10560002, 100))

 

'''
它接受数字num1和num2,如果在num1的任何位置有一个数字的连续三倍,并且在num2中有一个数字的连续两倍,则返回1。
如果不是这样,则返回0
例子
triple_double(451999277, 41177722899) == 1
num1有三个直的999,num2有两个直的999
triple_double(1222345, 12345) == 0
num1有直接的三重2s,但是num2只有一个2
triple_double(12345, 12345) == 0
triple_double(666789, 12345667) == 1
'''


#解法1
import itertools
def triple_double(num1, num2):
#code me ^^
num1_3=[k for k,v in itertools.groupby(str(num1)) if len(list(v))==3]
num2_2=[k for k,v in itertools.groupby(str(num2)) if len(list(v))==2]
if num1_3!=[]:
for i in num1_3:
if i in num2_2 :
return 1
else:
return 0
else:
return 0

print(triple_double(10560002, 100))


posted @ 2020-03-31 14:27  pple  阅读(171)  评论(0编辑  收藏  举报
以终为始,你期待的那天不会太遥远。