Cho hai chuỗi s, t. Kiểm tra t có thể tạo được từ các ký tự của s (mỗi ký tự dùng tối đa lần xuất hiện trong s).
Ví dụ: s="owhtlleh", t="hello" → True.
Thuật toán
- Đếm tần suất ký tự trong s (defaultdict).
- Duyệt t: nếu freq[t[i]] == 0 → False; else freq[t[i]]--.
- Trả về True.
Ví dụ code
from collections import defaultdict
def solve(s, t):
freq = defaultdict(int)
for ch in s:
freq[ch] += 1
for ch in t:
if freq[ch] == 0:
return False
freq[ch] -= 1
return True
s = "owhtlleh"
t = "hello"
print(solve(s, t))
Đầu vào
"owhtlleh", "hello"
Đầu ra
True