news 2026/1/16 3:18:33

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/1/8 23:29:32

PyTorch Electron客户端构建:Miniconda-Python3.9环境打包

PyTorch Electron客户端构建&#xff1a;Miniconda-Python3.9环境打包 在深度学习模型日益走向终端应用的今天&#xff0c;如何将训练好的PyTorch模型以稳定、轻量的方式嵌入桌面级AI产品&#xff0c;成为研发团队面临的关键挑战。尤其是当使用Electron这类基于Web技术栈封装的…

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

python基于Vue 语言的茶叶商城销售系统的前端设计与实现_z3333_django Flask pycharm项目

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

作者头像 李华
网站建设 2026/1/9 13:18:18

PyTorch健康检查接口开发:Miniconda-Python3.9环境测试

PyTorch健康检查接口开发&#xff1a;Miniconda-Python3.9环境测试 在AI模型从实验室走向生产的过程中&#xff0c;一个常被低估却极其关键的环节浮出水面——环境的一致性与可复现性。你是否遇到过这样的场景&#xff1a;本地训练完美的模型&#xff0c;在CI流水线中突然报错…

作者头像 李华
网站建设 2026/1/8 14:24:06

Miniconda-Python3.9环境下实现PyTorch模型跨平台兼容

Miniconda-Python3.9环境下实现PyTorch模型跨平台兼容 在人工智能项目从实验室走向落地的过程中&#xff0c;一个看似简单却频频绊倒开发者的难题始终存在&#xff1a;为什么在我机器上跑得好好的模型&#xff0c;换到另一台设备就报错&#xff1f;更常见的是&#xff0c;训练完…

作者头像 李华
网站建设 2026/1/4 10:12:44

收藏!深入浅出Transformer核心架构:Encoder与Decoder实战指南

本文详解Transformer两大核心组件Encoder和Decoder&#xff0c;重点讲解位置编码Positional Encoding的三角函数实现与掩码Mask操作(padding mask和casual mask)的作用。通过PyTorch代码示例展示具体实现方法&#xff0c;并以英文翻译任务为例展示Transformer模型的训练与推理过…

作者头像 李华
网站建设 2026/1/12 2:25:47

当免疫算法遇上物流选址:一场代码驱动的优化之旅

免疫优化算法选址 1、免疫算法是一种具有生成检测 (generate and test)的迭代过程的群智能搜索算法。 从理论上分析&#xff0c;迭代过程中&#xff0c;在保留上一代最佳个体的前提下&#xff0c;免疫算法是全局收敛的 2、结合选址理论方法&#xff0c;建立模型&#xff0c;得出…

作者头像 李华