华为机试HJ81字符串字符匹配
题目:
想法:
将长字符串构建为字典,遍历短字符串,查找短字符串中的字符是否在字典中
while True:
try:
short_str = input()
long_str = input()
long_str_dict = {l for l in long_str}
for s in short_str:
if s not in long_str_dict:
print("false")
break
else:
print("true")
except:
break
时间复杂度分析:因为构建字典的时间复杂度是
O
(
n
)
O(n)
O(n),字典查询的时间复杂度是
O
(
1
)
O(1)
O(1),遍历短字符串的时间复杂度是
O
(
n
)
O(n)
O(n)。因此总时间复杂度为
O
(
n
)
O(n)
O(n)。
空间复杂度分析:构建字典需要
O
(
n
)
O(n)
O(n),因此空间复杂度为
O
(
n
)
O(n)
O(n)