python-3.x - 如果两个字符串之间有一个公共子字符串,则为程序显示一些运行时错误,该错误会打印 YES
问题描述
给定两个字符串,确定它们是否共享一个公共子字符串。一个子字符串可以小到一个字符。
例如,单词“a”、“and”、“art”共享公共子字符串。“be”和“cat”这两个词不共享子字符串。在下面的编辑器中完成函数 twoStrings。它应该根据字符串是否共享一个公共子字符串来返回一个字符串,是或否。
twoStrings 具有以下参数:
s1, s2:要分析的两个字符串。输入格式
第一行包含一个整数,即测试用例的数量。
以下成对的行如下:
第一行包含字符串。第二行包含字符串。*
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the twoStrings function below.
def twoStrings(s1, s2):
`this is the code i have written its been showing some kinda runtime error`
str1 = list(s1)
str2 = list(s2)
flag = 0
for i in str1:
for j in str2:
if str(i) == str(j):
flag += 1
if flag > 0:
print("YES")
else:
print("NO")
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
q = int(input())
for q_itr in range(q):
s1 = input()
s2 = input()
result = twoStrings(s1, s2)
fptr.write(result + '\n')
fptr.close()
解决方案
确定两个字符串是否共享一个字符就足够了。一种方法是在第一个字符串中创建一组字符,然后根据该组检查第二个字符串中的每个字符。
def share_char(s1, s2):
s1_chars = set(s1)
return any(s2_char in s1_chars for s2_char in s2)
推荐阅读
- c# - 如何将图像从 api 读入 WPF 作为实时视频播放?
- c - AIX 7.2 GLib-GObject 信号传入无效
- swift - 是否可以在暂停的应用程序中运行预定的计时器?
- java - 如何摆脱空值异常
- java - Apache 晕厥修改 @XmlElement
- kubernetes - 如何使用 Prometheus Alert Manager 在 Kubernetes 中触发警报
- excel - Excel MATCH 公式
- iis - IIS + compression-webpack-plugin (gzip) - 使用源代码加载“脚本”失败
- c# - 为什么“if”语句中使用的 elvis 运算符不再是布尔代数?
- session - 什么样的变量/函数/对象是 session("var") = "Value"