news 2026/4/3 5:46: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/4/3 4:55:57

学长亲荐10个AI论文工具,MBA毕业论文轻松搞定!

学长亲荐10个AI论文工具&#xff0c;MBA毕业论文轻松搞定&#xff01; AI 工具如何助力 MBA 论文写作&#xff1f; 在当今信息爆炸的时代&#xff0c;MBA 学生面对的不仅是繁重的课程压力&#xff0c;还有对高质量论文的高标准要求。而 AI 工具的出现&#xff0c;为学术写作带来…

作者头像 李华
网站建设 2026/3/25 2:59:09

基于单片机玩具小车控制系统设计

基于单片机玩具小车控制系统设计 第一章 绪论 传统玩具小车多采用固定程序或简单遥控&#xff0c;存在控制方式单一、功能固化、交互性弱等问题。例如&#xff0c;多数遥控小车仅支持前进、后退等基础操作&#xff0c;缺乏避障、循迹等智能功能&#xff0c;难以满足儿童探索欲或…

作者头像 李华
网站建设 2026/3/30 12:00:48

基于单片机的红外防盗报警器设计

基于单片机的红外防盗报警器设计 第一章 系统设计背景与核心目标 传统防盗手段如机械锁具、人工巡逻存在防护滞后、覆盖范围有限等问题&#xff0c;而红外防盗技术凭借非接触式检测、响应迅速的优势&#xff0c;成为家庭、商铺等场景的主流选择。基于单片机的红外防盗报警器&am…

作者头像 李华
网站建设 2026/3/28 23:53:47

Miniconda-Python3.9如何支持PyTorch与Homomorphic Encryption集成

Miniconda-Python3.9 如何支持 PyTorch 与同态加密集成 在医疗、金融等对数据隐私高度敏感的领域&#xff0c;一个日益紧迫的问题浮出水面&#xff1a;如何在不暴露原始数据的前提下完成深度学习模型的推理&#xff1f;传统的“上传-处理-返回”模式已无法满足 GDPR、HIPAA 等严…

作者头像 李华
网站建设 2026/4/2 15:49:44

PyTorch容错机制设计:基于Miniconda-Python3.9环境验证

PyTorch容错机制设计&#xff1a;基于Miniconda-Python3.9环境验证 在深度学习模型训练中&#xff0c;一次长达数天的实验因意外中断而前功尽弃&#xff0c;这样的场景并不少见。更令人沮丧的是&#xff0c;当你试图重新复现结果时&#xff0c;却发现环境依赖已悄然变化——某个…

作者头像 李华
网站建设 2026/3/11 22:33:03

Miniconda-Python3.9环境下实现PyTorch模型优先级调度

Miniconda-Python3.9环境下实现PyTorch模型优先级调度 在现代深度学习工程实践中&#xff0c;一个常见的痛点是&#xff1a;多个模型共享同一计算资源时&#xff0c;如何避免依赖冲突、保证版本一致&#xff0c;并在资源紧张时合理分配执行顺序&#xff1f;尤其是在边缘设备或推…

作者头像 李华