def checkio(line1: str, line2: str) -> str:
result = ''
for word in line1.split(','):
if word in line2:
result += word + ','
result = ','.join(sorted(result.split(',')))
return result[1:]
if __name__ == "__main__":
print("Example:")
print(checkio("mega,cloud,two,website,final", "window,penguin,literature,network,fun,cloud,final,sausage"))
也许这是一个愚蠢的问题,但经过一个比较两个字符串的循环后;两个";出现在结果变量中,尽管它不在的第二个列表中
问题是您使用了;在";(substring(运算符而不是(equal("运算符=="操作人员因此;两个";它发现;两个";其位于单词"的内部;neTWOrk";。
是"两个";处于";窗口,企鹅,文学,ne两个rk,乐趣,云,决赛,香肠">
3个字符的序列:t,w,o出现在第2行,因此它在结果中。
您应该通过拆分第2行来比较集合。
def checkio(line1: str, line2: str) -> str:
result = ''
for word in line1.split(','):
if word in line2.split(','):
result += word + ','
result = ','.join(sorted(result.split(',')))
return result[1:]
单词two
在第二个字符串中(在network
中(。
将两个字符串拆分为集合,然后在联接中返回这些字符串的交集,这样会更好更容易。
def checkio(line1: str, line2: str) -> str:
s1 = set(line1.split(','))
s2 = set(line2.split(','))
return ','.join(s1 & s2)
if __name__ == "__main__":
print("Example:")
print(checkio(
"mega,cloud,two,website,final",
"window,penguin,literature,network,fun,cloud,final,sausage"))
必须用"并列出一份清单。你的问题是你在一个字符串中搜索;两个";处于";网络";。我只是在你的函数中加了一行。
''
def checkio(line1: str, line2: str) -> str:
#just add following line
line2_list=line2.split(",")
result = ''
for word in line1.split(','):
if word in line2_list:
result += word + ','
result = ','.join(sorted(result.split(',')))
return result[1:]
if __name__ == "__main__":
print("Example:")
print(checkio("mega,cloud,two,website,final",
"window,penguin,literature,network,fun,cloud,final,sausage"))
''