首页 > 解决方案 > 如果两个字符串之间有一个公共子字符串,则为程序显示一些运行时错误,该错误会打印 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()

标签: python-3.x

解决方案


确定两个字符串是否共享一个字符就足够了。一种方法是在第一个字符串中创建一组字符,然后根据该组检查第二个字符串中的每个字符。

def share_char(s1, s2):
    s1_chars = set(s1)
    return any(s2_char in s1_chars for s2_char in s2)

推荐阅读