字符串字符匹配(HJ17)

字符串字符匹配

题目描述

https://www.nowcoder.com/share/jump/5832603751775720180207

给定两个字符串,判断第一个字符串中的每个字符是否都在第二个字符串中出现。全部出现输出 true,否则输出 false

示例

输入:

abc
efgh
输出:
false
解释:a、b、c 都不在 efgh 中

输入:

abc
aabbcc
输出:
true
解释:a、b、c 都在 aabbcc 中

解题思路

集合子集判断

将两个字符串转为字符集合,判断第一个集合是否是第二个集合的子集。

代码实现

# HJ17 字符串字符匹配

s = set(input())
t = set(input())

flag = s <= t
print("true") if flag else print("false")

代码解析

s <= t - 子集判断

s = {'a', 'b'}
t = {'a', 'b', 'c'}

s <= t  # True,s 是 t 的子集

等价写法:

s <= t           # 运算符写法(推荐)
s.issubset(t)    # 方法写法
all(ch in t for ch in s)  # 逐个检查

时间复杂度

  • O(n + m) - 构建两个集合,n 和 m 为字符串长度

空间复杂度

  • O(k) - 存储字符集合,k 为字符种类数

字符串字符匹配(HJ17)
https://mingsm17518.github.io/2026/04/09/algorithm/华为机考/nowcoder/String/17_string_match/
作者
Ming
发布于
2026年4月9日
更新于
2026年4月9日
许可协议