四个词各出现几次

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

四个要找的词 heshehishers,一段文本 ushershishe(11 个字符,下标从 0 起):按 WORDS 里的顺序,输出四个词各自的出现次数:

WORDS = ['he', 'she', 'his', 'hers']
TXT = "ushershishe"

def build(words):
    t = {}
    for w in words:
        node = t
        for ch in w:
            node = node.setdefault(ch, {})
        node["#"] = w
    return t

def scan(t, txt):
    """从每个起点顺着 Trie 往下走,走到 # 就记一个命中"""
    hits = []
    for i in range(len(txt)):
        node = t
        for j in range(i, len(txt)):
            if txt[j] not in node:
                break
            node = node[txt[j]]
            if "#" in node:
                hits.append((i, node["#"]))
    return sorted(hits)

t = build(WORDS)
hits = scan(t, TXT)
print("/".join(str(sum(1 for _, w in hits if w == x)) for x in WORDS))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论