python实现判断两个字符串的包含关系

描述

给定由字母组成的字符串s1和s2,如何判断较长的字符串是否包含较短的字符串(即出现在较短字符串中的字符在较长字符串中都存在)。例如,s1=‘abcdef’,s2=‘acf’,s3=‘acg’,则s1包含s2,s1不包含s3.

算法

对于较短的字符串中的每个字符,遍历较长字符串,查看是否包含该字符。

python实现

def is_contain(str_1, str_2):
    len_1 = len(str_1)
    len_2 = len(str_2)
    if len_1 < len_2:
        i = 0
        while i < len_1:
            j = 0
            while j < len_2:
                if list(str_1)[i] == list(str_2)[j]:
                    break
                j += 1
            if j == len_2:
                return False
            i += 1
    else:
        i = 0
        while i < len_2:
            j = 0
            while j < len_1:
                if list(str_1)[j] == list(str_2)[i]:
                    break
                j += 1
            if j == len_1:
                return False
            i += 1
    return True


def main():
    str_1 = 'abcdef'
    str_2 = 'acf'
    str_3 = 'acg'
    print(is_contain(str_1, str_2))
    print(is_contain(str_1, str_3))


if __name__ == '__main__':
    main()

输出:

True
False
点赞