当前位置: 首页 > 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.jsqmd.com/news/166469/

相关文章:

  • 大模型时代的“产品经理革命“:AI Agent PM如何成为编程圈的“天选之子“
  • Miniconda-Python3.9让你的AI实验结果可复现
  • Miniconda-Python3.9运行对话系统Chatbot实战
  • 阅读笔记
  • NVIDIA 生成key
  • 美国货代公司推荐:破解中美跨境物流核心痛点 - bykj8888
  • 2026北京扰乱公共秩序律师事务所口碑排名:权威测评推荐靠谱机构 - 苏木2025
  • java计算机毕业设计校园志愿者管理系统的设计与实现 高校公益时数一站式运营平台 校园志愿活动全流程数字化系统
  • 2026年 铜包钢/镀锡铜包钢/镀银铜包钢/铜包钢线/铜包钢绞线/铜包钢丝/铜包铝/铜包铝绞线/镀锡铜包铝/铜包铜 源头厂家权威推荐榜:导电先锋,匠心优选 - 品牌企业推荐师(官方)
  • 内卷警告!Meta数十亿收购AI Agent公司,程序员们:这波技术浪潮不跟真要被淘汰?
  • 使用Miniconda-Python3.9一键部署PyTorch生产环境
  • Miniconda-Python3.9环境下使用TorchScript导出模型
  • 传感器学习(day19):ToF传感技术:从测距到三维视觉革命
  • 2025海外人力资源服务商盘点,名义雇主EOR公司推荐 - 品牌2025
  • 2026年 整流子厂家权威推荐榜:电机整流子、平面整流子、微型电机整流子,精密工艺与高效能转换的行业标杆精选 - 品牌企业推荐师(官方)
  • Miniconda-Python3.9如何支持PyTorch与Etcd配置中心集成
  • leetcode 821. Shortest Distance to a Character 字符的最短距离-耗时100%
  • Miniconda-Python3.9打造高性能GPU计算平台
  • ATOM:电池连接器大电流发热影响设备寿命?3大核心解法+行业数据支撑 - 品致汇
  • 哪些影像测量仪品牌适合新手?实用选型指南 - 博客万
  • 揭秘Elasticsearch如何根据一个词找到对应的倒排索引!
  • 剖析Zoom客户端CVE-2024-36535漏洞:信息泄露风险与修复
  • 北京交通便利的陵园推荐:环境与位置俱佳的实用参考 - 品牌排行榜
  • 北京房山区公司清算律师事务所口碑排名2026:权威解决方案与靠谱机构推荐 - 苏木2025
  • Miniconda-Python3.9与Streamlit快速搭建可视化界面
  • rust解引用
  • systemctl 服务在哪里定义
  • python基于Hadoop平台的大学多媒体教学资源管理系统的设计与实现_django Flask pycharm项目
  • 2026年 海绵城市施工设计权威推荐榜:源头厂家专业方案与生态建设口碑深度解析 - 品牌企业推荐师(官方)
  • Miniconda-Python3.9环境下实现PyTorch模型Serverless函数化