题目描述

给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A

例如,如果这个列表是 ["time", "me", "bell"],我们就可以将其表示为 S = "time#bell#" 和 indexes = [0, 2, 5]

对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 "#" 结束,来恢复我们之前的单词列表。

那么成功对给定单词列表进行编码的最小字符串长度是多少呢?

示例:

输入: words = ["time", "me", "bell"]
输出: 10
说明: S = "time#bell#" , indexes = [0, 2, 5] 。

提示:

  1. 1 <= words.length <= 2000
  2. 1 <= words[i].length <= 7
  3. 每个单词都是小写字母 。

解题思路

static bool cmp(string a,string b){return a.length()>b.length();}int minimumLengthEncoding(vector<string>& words) {sort(words.begin(),words.end(),cmp);string ans = words[0]+"#";;for(int i=1;i<words.size();i++){string::size_type idx;idx = ans.find(words[i]);while(idx != string::npos){if(idx != string::npos && ans[idx+words[i].length()] == '#') break;idx = ans.find(words[i],idx+1);}if(idx == string::npos) ans += words[i]+"#";}return ans.length();}

Leetcode 820:单词的压缩编码相关推荐

  1. LeetCode 820. 单词的压缩编码(后缀树)

    文章目录 1. 题目 2. 解题 2.1 反转字符串+字符查找 2.2 后缀树 1. 题目 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 [&q ...

  2. 820. 单词的压缩编码

    820. 单词的压缩编码 思路:reverse后排序,只需要比较相邻的字符串 class Solution { public:int minimumLengthEncoding(vector<s ...

  3. 字典树实现_leetcode之820. 单词的压缩编码 | python极简实现字典树

    题目 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 ["time", "me", "bell& ...

  4. LeetCode 140. 单词拆分 II(DP+回溯)

    1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中.返回所有这些可能的句子. 说明: 分隔时可以重复使 ...

  5. LeetCode 126. 单词接龙 II(图的BFS)

    1. 题目 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列. 转换需遵循如下规则: 每次转换只能 ...

  6. LeetCode 127. 单词接龙(图的BFS/双向BFS)

    文章目录 1. 题目 2. 图的BFS解题 2.1 单向BFS 2.2 双向BFS !厉害了 1. 题目 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord ...

  7. LeetCode 212. 单词搜索 II(Trie树+DFS)

    1. 题目 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&qu ...

  8. Leetcode 79.单词搜索

    Time: 20190901 Type: Medium 题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&q ...

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

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

  10. LeetCode之单词搜索(回溯法求解)

    题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内 ...

最新文章

  1. java内存图解_图解JAVA内存模型(JMM:JAVA Memory Model)
  2. 如何在 Kubernetes 上配置 Jenkins?
  3. noip初赛试题 c语言,NOIP初赛试题提高组C语言.doc
  4. ELF(Executable Linkable Format)文件存储格式
  5. OGRE粒子系统简介
  6. python包导入细节_python 如何上传包到pypi
  7. 2022年道路运输企业安全生产管理人员报名考试及道路运输企业安全生产管理人员模拟试题
  8. rabbitmq,stomp.js,rabbitmq-auth-backend-http,消息调研,消息设计
  9. matlab解决相遇追及问题,生活中用到的数学例子
  10. linux驱动开发之九鼎板载蜂鸣器驱动测试【转】
  11. 1.4 NBU配置备份策略(Policy)
  12. 取之盈:html网页音乐代码大全
  13. 快播王欣最新项目大揭秘!
  14. 全球及中国医用管材行业需求调研与竞争趋势研究报告2022版
  15. Windows下本地路由表
  16. Jmetal Problem和Problem Set的变量范围
  17. 写论文难,提纲该怎么写?
  18. lua sha256算法函数封装
  19. 使用Spring Cloud构建分布式应用
  20. 计算机软件科学家谢涛,计算机软件科学家谢涛:星辰大海,求思进取

热门文章

  1. 姚班学霸陈立杰:16岁保送清华,18岁拿下IOI世界冠军,现摘得FOCS 2019最佳学生论文(附链接)...
  2. 人在东瀛——赴日工作两年收获分享(转)
  3. Certified Scrum Master(CSM)题目总结!
  4. 【找工作资料】英文面试问题集
  5. python-JASN 基本用法
  6. APP性能监测工具之友盟的 U-APM产品入门使用
  7. 【咪咕阅读商业模式】咪咕阅读商业模式
  8. MySQL崩溃修复案例
  9. H5移动端痛点问题(不定期更新)
  10. 浏览器兼容模式下,上传文件问题