题目

在英语中,我们有一个叫做 词根(root) 的概念,可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。

现在,给定一个由许多词根组成的词典 dictionary 和一个用空格分隔单词形成的句子 sentence。你需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。

你需要输出替换之后的句子。

示例

输入:dictionary = [“cat”,“bat”,“rat”], sentence = “the cattle was rattled by the battery”
输出:“the cat was rat by the bat”

输入:dictionary = [“a”,“b”,“c”], sentence = “aadsfasf absbs bbab cadsfafs”
输出:“a a b c”

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/replace-words
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法1:哈希表模拟

Java实现
class Solution {public String replaceWords(List<String> dictionary, String sentence) {Set<String> set = new HashSet<>();for (String d : dictionary) set.add(d);String[] strs = sentence.split(" ");for (int i = 0; i < strs.length; i++) {String str = strs[i];for (int j = 0; j < str.length(); j++) {if (set.contains(str.substring(0, j + 1))) {strs[i] = str.substring(0, j + 1);break;}}}return String.join(" ", strs);}
}

力扣 648. 单词替换相关推荐

  1. Leetcode 648.单词替换(Replace Words)

    Leetcode 648.单词替换 1 题目描述(Leetcode题目链接)   在英语中,我们有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词--我们称这个词为 继承词( ...

  2. LeetCode 648. 单词替换

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   在英语中,我们有一个叫 ...

  3. 648. 单词替换 : 字典树的经典运用

    题目描述 这是 LeetCode 上的 648. 单词替换 ,难度为 中等. Tag : 「字典树」 在英语中,我们有一个叫做 词根(root) 的概念,可以词根后面添加其他一些词组成另一个较长的单词 ...

  4. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

  5. 字典树/Trie/前缀树-LeetCode总结:720词典中最长的单词;127. 单词接龙;677. 键值映射;面试题 17.17. 多次搜索;648. 单词替换

    MyTrie结构体和相关操作函数 typedef struct MyTrie {bool is_word;vector<MyTrie*> next;MyTrie():is_word(fal ...

  6. Leetcode 648.单词替换

    单词替换 在英语中,我们有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词--我们称这个词为 继承词(successor).例如,词根an,跟随着单词 other(其他),可 ...

  7. LeetCode 648. 单词替换(Trie树)

    1. 题目 在英语中,我们有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词--我们称这个词为 继承词(successor).例如,词根an,跟随着单词 other(其他), ...

  8. 2022-1-29 Leetcode 648.单词替换

    这道题目的关键是,如果找到了前缀,就整个单词就只留下前缀,剩下的部分扔掉,如果没有找到前缀,整个单词都留下. string replaceWords(vector<string>& ...

  9. 每日一题·648.单词替换·前缀树

    题目 示例 思路 前缀:字符串的前缀是指字符串的任意首部.比如字符串"abbc"的前缀有"a","ab","abb",& ...

最新文章

  1. Linux下MySQL的字符集乱码问题总结
  2. bom event周期_DOM-BOM-EVENT(1)
  3. 算法9-5:最大流算法的Java代码
  4. JQ表单序列化变成 对象
  5. 编写函数main求3!+6!+9!python_Python day 6(3) Python 函数式编程1
  6. daily scrum 11.30
  7. 如何正确的更换网站服务器?
  8. ios::sync_with_stdio(true);
  9. 《CUDA C编程权威指南》——2.2 给核函数计时
  10. GridView中添加自动编号,以及鼠标经过时行背景色变和删除时提示。
  11. 经纬度转换坐标接口 查询位置信息
  12. centos oracle libaio哪下载,linux 安装libaio
  13. 深度森林(gcforest)原理讲解以及代码实现
  14. codeblock图形界面编程
  15. 网易有道词典识别不了adobe打开的pdf
  16. 《Graph Neural Network with Heterophily》阅读笔记
  17. 一个矩阵与单位矩阵相乘等于本身吗?并且符合交换律吗?
  18. 中枢神经系统解剖结构图,神经系统的解剖结构
  19. 怎么查服务器芯片组,服务器芯片组
  20. C语言 CJSON使用实例

热门文章

  1. 福州三中 计算机竞赛,福州高中学科竞赛亮点耀眼
  2. 暑假学习计划:Day_1.JSPServletTomcat 环境搭建到基础的认识。
  3. 我的一点自学心得[摘]
  4. java字符串用0X0F分割_微信公众帐号开发教程第4篇-----开发模式启用及接口配置Java...
  5. 6044:4115:鸣人和佐助
  6. win7做网站服务器数据库,win7做网站服务器
  7. 北交计算机学院推荐理由,北京交通大学计算机与信息技术学院赵守国老师介绍...
  8. thinksns开源微博系统 V3上传漏洞
  9. CSS 多种布局方式
  10. Kup Buty Under Armour także czynników bocznych