给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换。

请你找出所有用近义词替换后的句子,按 字典序排序 后返回。

示例 1:

输入:
synonyms = [["happy","joy"],["sad","sorrow"],["joy","cheerful"]],
text = "I am happy today but was sad yesterday"
输出:
["I am cheerful today but was sad yesterday",
"I am cheerful today but was sorrow yesterday",
"I am happy today but was sad yesterday",
"I am happy today but was sorrow yesterday",
"I am joy today but was sad yesterday",
"I am joy today but was sorrow yesterday"]

提示:

0 <= synonyms.length <= 10
synonyms[i].length == 2
synonyms[0] != synonyms[1]
所有单词仅包含英文字母,且长度最多为 10 。
text 最多包含 10 个单词,且单词间用单个空格分隔开。

题解:

并查集深搜,用的是自创的并查集方法。

class Solution:def generateSentences(self, synonyms: List[List[str]], text: str) -> List[str]:p, text = {}, text.split()for i, j in synonyms:p[i], p[j] = p.get(i, [i]), p.get(j, [j])if p[i] is not p[j]:p[i] += p[j]for k in p[j]:p[k] = p[i]ans, n = [], len(text)def f(i, t):if i == n:ans.append(' '.join(t))else:g = lambda x: f(i + 1, t + [x])[*map(g, p[text[i]] if text[i] in p else [text[i]])]f(0, [])return sorted(ans)

5110. 近义词句子相关推荐

  1. JAVA程序设计:近义词句子(LeetCode:5110)

    给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换. 请你找出所有用近义词替换后的句子,按 字典 ...

  2. LeetCode 1258. 近义词句子(哈希+并查集+排序+回溯)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换 ...

  3. Leetcode 1258:近义词句子(超详细的解法!!!)

    给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换. 请你找出所有用近义词替换后的句子,按 字典 ...

  4. LeetCode-Python-1258. 近义词句子 ( DFS)

    给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换. 请你找出所有用近义词替换后的句子,按 字典 ...

  5. 【每天一道算法题】近义词句子

    本文首发于我的公众号码农之屋(id: Spider1818),专注于干货分享,包含但不限于Java编程.网络技术.Linux内核及实操.容器技术等.欢迎大家关注,二维码文末可以扫. 题目描述 给你一个 ...

  6. 随手记_英语_学术写作_常用近义词区分

    1 近义词辨析 使用 utilize.use.apply.employ.avail.exploit的区别 (1)utilize往往指使本来无用的或开发的变为utile(有用的). (2)use.uti ...

  7. 责备的近义词_验收测试:责备工具

    责备的近义词 大约5年前,我正在进行一个项目,该项目旨在建立抵押品管理系统. 该系统已连接到大型财务网络,并通过标准化财务消息获得了说明. 该项目以瀑布形式运行,对学科之间的协作有很多限制. 在此不加 ...

  8. JAVA ik es_安装elasticsearch及中文IK和近义词配置

    安装elasticsearch及中文IK和近义词配置 安装java环境 java环境是elasticsearch安装必须的 yum install java-1.8.0-openjdk 安装elast ...

  9. python寻找近义词:预训练模型 nltk+20newsbydate / gensim glove 转 word2vec

    本文用python寻找英文近义词(中文:https://github.com/huyingxi/Synonyms) 使用的都是预训练模型 方法一.nltk+20newsbydate (运行时下载太慢/ ...

最新文章

  1. 我的第一个ASP类(显示止一篇下一篇文章)
  2. 学完Python后可以做哪些工作呢?
  3. SpringMVC的数据响应-页面跳转-返回字符串形式(应用)
  4. 云智慧压测实战分享之JMeter脚本录制实例
  5. CDH5 6 7安装包
  6. 物联网通信技术,那些你不知道的事
  7. RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复
  8. java clock计时_Java Clock类– java.time.Clock
  9. Code4Fun: 通过XML模板系统实现对象的灵活序列化
  10. java 写文件换行_Java 写文件实现换行
  11. 2021鹏业安装算量软件常见问题整理(五)
  12. 计算机IP地址pin,怎样PIN ip地址
  13. 【视觉-摄像机3】}摄像机镜头--焦距与视角(选相机和镜头)
  14. 头条极速版问答自动化教程
  15. python 表情包 gif,用 Python 开发一个【GIF表情包制作神器】
  16. 【网络游戏同步技术】游戏中的ping值计算
  17. EduCoder-Web程序设计基础-html5—表格高级样式的设置-第2关:设置表格的外边框样式
  18. python方差分析误差棒_一文讲透,带你学会用Python绘制带误差棒的柱状图和条形图...
  19. CALPHAD方法中“外推”的理解
  20. Windows系统,多开微信(电脑版)

热门文章

  1. sendgrid html text,用sendgrid发邮件
  2. 家庭智能插座一Homekit智能
  3. java显示数据库_java查询数据库中的数据并显示
  4. 冰雪第一天历险 - 2014 年的冬天第一场站得住的雪?
  5. 单核性能强的服务器cpu,Cpu单核性能强和多核性能强都有什么用?
  6. 怎样改变照片大小?免费在线图片压缩方法
  7. NLP学习笔记「第二章」2.2 N-gram Language Models(N元语言模型)
  8. 关于重装vscode打不开的三种解决方法,亲测有用
  9. 英文单词之说文解字(10)你真的用对“著名”了吗?
  10. 对网页 ‘’为所欲为‘’ 之手动实现深色模式?