当前位置: 首页 > news >正文

【LeetCode】大厂面试算法真题回忆(37)--知识图谱新词挖掘

题目描述

小华负责公司知识图谱产品,现在要通过新词挖掘完善知识图谱。

  • 新词挖掘:给出一个待挖掘文本内容字符串content和一个词的字符串word,找到content中所有word的新词。
  • 新词:使用词word的字符排列形成的字符串。

请帮小华实现新词挖掘,返回发现的新词的数量。

输入描述

第一行输入为待挖掘的文本内容content
第二行输入为词word

取值范围是:

  • 0 <= content.length <= 10000000
  • 1 <= word.length <= 2000

输出描述

content中找到的所有word的新词的数量。

示例描述

示例一

输入:

qweebaewqd
qwe

输出:

2

说明:

起始索引等于0的子串是qwe,它是word的新词。
起始索引等于6的子串是ewq,它是word的新词。

示例二

输入:

abab
ab

输出:

3

说明:

起始索引等于0的子串是ab,它是word的新词。
起始索引等于1的子串是ba,它是word的新词。
起始索引等于2的子串是ab,它是word的新词。

解题思路

基本思路: 使用滑动窗口求解。

  1. 滑动窗口大小为字符串word的长度。
  2. 创建字符串wordCounter对象c2
  3. 遍历字符串content的长度:
    • 创建滑动窗口内content子串的Counter对象c1
    • 比较两个对象,如果相等,统计结果加1。
  4. 返回统计结果。

解题代码

from collections import Counter


def solve_method(content: str, word: str) -> int:
    w = len(word)
    count = 0
    c2 = Counter(word)

    for i in range(len(content) - w + 1):
        c1 = Counter(content[i:i + w])
        if c1 == c2:
            count += 1

    return count


if __name__ == '__main__':
    assert solve_method("qweebaewqd", "qwe") == 2
    assert solve_method("abab", "ab") == 3
```![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9e57302be4c64b3d955f1924454911be.png#pic_center)

相关文章:

  • 大数据从入门到入魔系列————探索大数据前世今生之迷
  • Unity | 游戏数据配置
  • SpringBoot整合MQTT最详细版(亲测有效)
  • 创建自己的github.io
  • Jmeter插件下载和配置
  • 终端的命令行发送邮件的方式和监视脚本
  • windows专用网路的共享文件配置
  • EtherCAT转profinet网关集成汽车变速箱制造生产线自动化升级
  • 高频GNSS同震形变计算方法
  • 可发1区的超级创新思路:基于注意力机制的DSD-CNN时间序列预测模型(功率预测、交通流量预测、故障检测)
  • Python学习第二十二天
  • 智能体开发革命:灵燕平台如何重塑企业AI应用生态
  • Lineageos 22.1(Android 15)应用双开
  • 图解AUTOSAR_CP_EEPROM_Abstraction
  • Nordic nRF528xxx Beacon功能开发学习方案总结
  • Metasploit 跳板攻击
  • doris:负载均衡
  • centos 9 编译安装 rtpengine
  • 【WebGL】texImage2D函数
  • 1.5.7 掌握Scala内建控制结构 - 变量作用域
  • “光荣之城”2025上海红色文化季启动,红色主题市集亮相
  • 2024“好评中国”网络评论大赛结果揭晓
  • 外交部官方公众号发布视频:不跪!
  • 总有黑眼圈是因为“虚”吗?怎么睡才能改善?
  • 玉渊谭天丨中方减少美国农产品进口后,舟山港陆续出现巴西大豆船
  • 我的科学观|张峥:AI快速迭代,我们更需学会如何与科技共处