# 运用python计数器速解 from collections import Counter # 分别对短串和长串生成字典(char-count),统计各字母出现数量 ss, ls = map(dict, map(Counter, input().split())) # 定义结果默认值'true' result = 'true' # 遍历短串各字符 for i in ss.keys(): # 如果长串不包含此字符,或此字符数量短串大于长串,也就是长串不能覆盖短串,则改置结果为'false',并退出循环 if i not in ls.keys() or ss[i] > ls[i]: result = 'false' break print(result)
还有种解法,遍历短串字符,依次对长串做此字符的移除操作,如果报数据不存在异常,则说明短串中此字符在长串中不存在,或此字符数量短串大于长串
不过只能通过93%,时间复杂度应该就是O(n),当短串太长时会超时
ss, ls = map(list,input().split()) result = 'true' for i in ss: try: ls.remove(i) except ValueError: result = 'false' break print(result)