📅  最后修改于: 2023-12-03 15:39:42.072000             🧑  作者: Mango
给定一个字符串和一个数组,打印出数组中作为给定字符串中的子字符串出现的所有字符串。
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$为数组中字符串的个数。由于最坏情况下需要遍历数组中的每一个字符串,并检查其是否为给定字符串的子串,因此复杂度无法避免。但由于字符串的长度通常比数组中字符串的个数大得多,因此实际运行时复杂度可能比较低。