news 2026/6/25 21:03:28

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/6/22 17:37:48

Miniconda-Python3.9+GitHub Copilot提升编码效率

Miniconda-Python3.9 GitHub Copilot&#xff1a;构建高效智能的现代开发环境 在数据科学与人工智能项目中&#xff0c;一个常见的尴尬场景是&#xff1a;你从同事那里拿到一份“能跑”的代码&#xff0c;兴冲冲地在自己的机器上执行&#xff0c;结果却卡在了第一步——包导入…

作者头像 李华
网站建设 2026/6/17 9:03:29

PyTorch模型API设计规范:Miniconda-Python3.9环境验证

PyTorch模型API设计规范&#xff1a;Miniconda-Python3.9环境验证 在深度学习项目日益复杂的今天&#xff0c;一个常见的工程困境是&#xff1a;“代码在我本地能跑&#xff0c;但在同事机器上却报错。”这种“环境不一致”问题不仅浪费开发时间&#xff0c;更严重阻碍团队协作…

作者头像 李华
网站建设 2026/6/20 15:09:03

PyTorch CI/CD流水线:Miniconda-Python3.9作为标准构建环境

PyTorch CI/CD流水线&#xff1a;Miniconda-Python3.9作为标准构建环境 在现代AI工程实践中&#xff0c;一个再熟悉不过的场景是&#xff1a;开发者本地训练模型一切正常&#xff0c;提交代码后CI却频频报错——“找不到模块”、“CUDA版本不兼容”、“依赖冲突”……这类问题看…

作者头像 李华
网站建设 2026/6/17 17:02:44

基于JAVA的医院住院管理系统

基于JAVA的医院住院管理系统设计与实现 第一章 绪论 传统医院住院管理多依赖人工记录与纸质单据流转&#xff0c;存在信息查询繁琐、数据统计滞后、流程衔接不畅等问题。例如&#xff0c;患者入院登记需手动填写多份表格&#xff0c;病房床位状态更新不及时易导致分配冲突&…

作者头像 李华
网站建设 2026/6/15 19:38:38

Miniconda-Python3.9环境下实现PyTorch模型GitOps部署

Miniconda-Python3.9环境下实现PyTorch模型GitOps部署 在AI研发日益工程化的今天&#xff0c;一个常见的痛点是&#xff1a;数据科学家在本地训练好的模型&#xff0c;一旦交给运维团队部署&#xff0c;就频频报错——“ImportError: cannot import name ‘XXX’”&#xff0c;…

作者头像 李华
网站建设 2026/6/16 2:10:38

通过Miniconda-Python3.9快速启动Jupyter Notebook进行AI开发

通过Miniconda-Python3.9快速启动Jupyter Notebook进行AI开发 在人工智能项目日益复杂的今天&#xff0c;一个常见的痛点浮出水面&#xff1a;为什么同样的代码&#xff0c;在同事的机器上跑得好好的&#xff0c;到了你的环境却报错不断&#xff1f;问题往往不在于代码本身&…

作者头像 李华