当前位置: 首页 > news >正文

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(); } };
http://www.rkmt.cn/news/182036.html

相关文章:

  • NVIDIA 生成key
  • 大模型时代的“产品经理革命“:AI Agent PM如何成为编程圈的“天选之子“
  • 阅读笔记
  • 2025海外人力资源服务商盘点,名义雇主EOR公司推荐 - 品牌2025
  • Miniconda-Python3.9打造高性能GPU计算平台
  • Miniconda-Python3.9与Streamlit快速搭建可视化界面
  • MIMO OFDM 不同调制信号的误码率对比 使用了STBC空时编码和信道估计 有详细中文注释
  • 2026年 海绵城市施工设计权威推荐榜:源头厂家专业方案与生态建设口碑深度解析 - 品牌企业推荐师(官方)
  • ATOM:小尺寸电子设备连接器困局破局指南——从微型化设计到场景适配的全维度解决方案 - 品致汇
  • Miniconda-Python3.9安装Scikit-learn进行机器学习
  • PyTorch Electron客户端构建:Miniconda-Python3.9环境打包
  • 武汉本地雅思培训机构哪家值得信赖?真实口碑机构推荐 - 品牌排行榜
  • 2025管道坡口机企业TOP5权威推荐:资深厂商实力测评 - 工业设备
  • 2025年12月路岩石厂家推荐榜:花岗岩路岩石/芝麻白路岩石/芝麻灰路岩石/火烧面路岩石/亚光面路岩石,河南泌阳县春辉石材厂五星领跑 - 海棠依旧大
  • Miniconda-Python3.9环境下运行Stable Diffusion模型
  • 展厅设计公司推荐:行业实力机构与服务解析 - 品牌排行榜
  • Kanass快速上手指南:开发团队如何通过kanass有效管控开发任务
  • 2025年12月北京一对一辅导机构推荐榜:北京一对一/辅导/补习/培训/补习班/平台/家教/网课/北京线上一对一,金博教育精准适配全学段需求 - 海棠依旧大
  • Miniconda-Python3.9+GitHub Copilot提升编码效率
  • 推荐杭州中科微GNSS芯片型号选型表
  • Java正则表达式
  • Miniconda-Python3.9如何支持PyTorch与Prometheus指标采集
  • 当免疫算法遇上物流选址:一场代码驱动的优化之旅
  • PyTorch分布式锁实现:Miniconda-Python3.9环境协调服务
  • Miniconda-Python3.9环境下实现PyTorch模型OTA远程升级
  • 2025链游白皮书:从边缘狂欢到主流文明的三大跃迁密码
  • DMA_案例实战1:ROM到RAM数据搬运
  • 通过Miniconda-Python3.9快速启动Jupyter Notebook进行AI开发
  • Miniconda-Python3.9如何避免Python依赖冲突
  • 大模型伦理测试深度复盘:当AI学会“掀桌子”,我们该重新审视编程逻辑了!