我正在完成代码战方面的挑战,并且不了解一些速记解决方案。您正在检查一个列表中是否存在三个相邻的等效值,而另一列表中是否存在两个相同的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)
部分。这是一些东西的简写,并且不确定要用谷歌弄清楚是什么。任何方向表示赞赏,谢谢!链接到代码战:
答案 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'