news 2026/7/27 17:10:50

leetcode 820. Short Encoding of Words 单词的压缩编码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 820. Short Encoding of Words 单词的压缩编码

Problem: 820. Short Encoding of Words 单词的压缩编码

解题过程

使用了字典树,哈希表,集合,哈希表用来表示是否已经加入到字符串内,字典树用一个index表示单词的索引,首先用集合去重,然后清空words,放入去重以后的字符串,然后按照长度排序的

排序以后放入到字典树中,倒序放入的,并在第一个字母标记isEnd= true和索引index,像单词time 和 me,放入以后从最长的开始遍历字典树,emit就包含了time和me,构造字符串并标记状态,防止重复访问,最后返回字符串长度

Code

class tries{ public: int index; bool isEnd = false; tries* arr[26] = {nullptr}; tries() { for(int i = 0; i < 26; i++) { arr[i] = nullptr; } } }; class Solution { public: int minimumLengthEncoding(vector<string>& words) { tries* root = new tries, *ptr; unordered_set<string> te; for(string& s : words) { te.insert(s); } words.clear(); for(auto s : te) { words.push_back(s); } function<bool(string, string)> fun = [&](string a, string c){ return a.size() > c.size(); }; sort(words.begin(), words.end(), fun); for(int i = 0; i < words.size(); i++) { ptr = root; char ch; for(int j = words[i].size() - 1; j >= 0; j--) { ch = words[i][j]; if(ptr->arr[ch-'a']==nullptr) { ptr->arr[ch-'a'] = new tries; } ptr = ptr->arr[ch-'a']; if(j == 0) { ptr->isEnd = true; ptr->index = i; } } } vector<bool> status(words.size(), false); string tg; for(int i = 0; i < words.size(); i++) { if(status[i] == true) continue; status[i] = true; ptr = root; char ch; for(int j = words[i].size() - 1; j >= 0; j--) { ch = words[i][j]; ptr = ptr->arr[ch-'a']; if(ptr->isEnd == true) { status[ptr->index] = true; } } tg += words[i] + "#"; } return tg.size(); } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 14:37:21

Miniconda-Python3.9环境下使用TorchScript导出模型

Miniconda-Python3.9环境下使用TorchScript导出模型 在深度学习项目从实验室走向生产线的过程中&#xff0c;一个常见的困境是&#xff1a;模型在本地训练得再好&#xff0c;一旦部署到生产环境就“水土不服”——依赖冲突、版本不一致、推理延迟高、无法脱离Python运行……这些…

作者头像 李华
网站建设 2026/7/19 1:01:33

python基于Hadoop平台的大学多媒体教学资源管理系统的设计与实现_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Hadoop平台的大学多媒体教…

作者头像 李华
网站建设 2026/7/24 13:44:19

python基于Vue 社区帮扶助老年人志愿者服务平台的设计与实现 _8s504_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue 社区帮扶助老年人志愿…

作者头像 李华
网站建设 2026/7/24 11:45:06

Miniconda-Python3.9镜像适配主流AI框架的兼容性测试

Miniconda-Python3.9镜像适配主流AI框架的兼容性测试 在当今 AI 项目开发中&#xff0c;一个看似简单却频繁困扰工程师的问题是&#xff1a;为什么代码在同事的机器上能跑&#xff0c;在我的环境里却报错&#xff1f; 答案往往藏在那些看不见的依赖版本差异中。比如&#xff…

作者头像 李华
网站建设 2026/7/24 8:26:05

Miniconda-Python3.9环境下使用FlashAttention优化训练

Miniconda-Python3.9环境下使用FlashAttention优化训练 在现代深度学习系统中&#xff0c;随着模型规模的不断膨胀&#xff0c;训练效率与显存管理正成为制约研发进度的核心瓶颈。尤其是在处理长序列任务时&#xff0c;Transformer 架构中的标准注意力机制由于其 $ O(N^2) $ 的…

作者头像 李华