📌  相关文章
📜  打印给定数组中作为给定字符串中的子字符串出现的所有字符串(1)

📅  最后修改于: 2023-12-03 15:39:42.072000             🧑  作者: Mango

题目描述

给定一个字符串和一个数组,打印出数组中作为给定字符串中的子字符串出现的所有字符串。

解题思路

  1. 遍历数组中的每一个字符串
  2. 检查它是否是给定的字符串的子串
  3. 如果是,将它加入结果列表
  4. 输出结果列表

代码实现

def find_substring(string, substrings):
    """
    打印给定数组中作为给定字符串中的子字符串出现的所有字符串
    :param string: 给定字符串
    :param substrings: 给定数组
    """
    result = []
    for sub in substrings:
        if sub in string:
            result.append(sub)
    print(result)

示例

string = "Hello, World!"
substrings = ["Hello", "World", "Python"]
find_substring(string, substrings)
# 输出: ['Hello', 'World']

复杂度分析

本算法的时间复杂度为$O(nm)$,其中$n$为字符串的长度,$m$为数组中字符串的个数。由于最坏情况下需要遍历数组中的每一个字符串,并检查其是否为给定字符串的子串,因此复杂度无法避免。但由于字符串的长度通常比数组中字符串的个数大得多,因此实际运行时复杂度可能比较低。