检查列表中的多个相邻等效值

时间:2019-11-07 00:23:14

标签: python list

我正在完成代码战方面的挑战,并且不了解一些速记解决方案。您正在检查一个列表中是否存在三个相邻的等效值,而另一列表中是否存在两个相同的SAME编号等效值。即“ 12777456”(当采用列表形式时)将连续包含三个7。我不明白的解决方案说:

def triple_double(num1, num2):
    for x in range(10):
        if str(x) * 3 in str(num1):
            if str(x) * 2 in str(num2):
                return 1
    return 0

我没有得到str(x) * 3 in str(num1)部分。这是一些东西的简写,并且不确定要用谷歌弄清楚是什么。任何方向表示赞赏,谢谢!链接到代码战:

Codewars

1 个答案:

答案 0 :(得分:1)

有时仅打印内容可以帮助您了解发生了什么。查看修改:

num1 = 1233345
num2 = 123345

for x in range(10):
    if str(x) * 3 in str(num1):
        print(str(x) * 3, "in", num1)
        if str(x) * 2 in str(num2):
            print(str(x) * 2, "in", num2)

结果:

333 in 1233345
33 in 123345

在Python中将字符串乘以int会导致字符串重复:

>>> "a" * 3
'aaa'
>>> "abc" * 3
'abcabcabc'