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

dw做网站的导航栏怎么做百度推广账户怎么开

dw做网站的导航栏怎么做,百度推广账户怎么开,浙江最近爆发的传染病,手机网站 seo本文涉及知识点 字典树#xff08;前缀树) 字符串 LeetCode 2416. 字符串的前缀分数和 给你一个长度为 n 的数组 words #xff0c;该数组由 非空 字符串组成。 定义字符串 word 的 分数 等于以 word 作为 前缀 的 words[i] 的数目。 例如#xff0c;如果 words [“a”,…本文涉及知识点 字典树前缀树) 字符串 LeetCode 2416. 字符串的前缀分数和 给你一个长度为 n 的数组 words 该数组由 非空 字符串组成。 定义字符串 word 的 分数 等于以 word 作为 前缀 的 words[i] 的数目。 例如如果 words [“a”, “ab”, “abc”, “cab”] 那么 “ab” 的分数是 2 因为 “ab” 是 “ab” 和 “abc” 的一个前缀。 返回一个长度为 n 的数组 answer 其中 answer[i] 是 words[i] 的每个非空前缀的分数 总和 。 注意字符串视作它自身的一个前缀。 示例 1 输入words [“abc”,“ab”,“bc”,“b”] 输出[5,4,3,2] 解释对应每个字符串的答案如下 “abc” 有 3 个前缀“a”、“ab” 和 “abc” 。2 个字符串的前缀为 “a” 2 个字符串的前缀为 “ab” 1 个字符串的前缀为 “abc” 。 总计 answer[0] 2 2 1 5 。“ab” 有 2 个前缀“a” 和 “ab” 。2 个字符串的前缀为 “a” 2 个字符串的前缀为 “ab” 。 总计 answer[1] 2 2 4 。“bc” 有 2 个前缀“b” 和 “bc” 。2 个字符串的前缀为 “b” 1 个字符串的前缀为 “bc” 。 总计 answer[2] 2 1 3 。“b” 有 1 个前缀“b”。2 个字符串的前缀为 “b” 。 总计 answer[3] 2 。 示例 2 输入words [“abcd”] 输出[4] 解释 “abcd” 有 4 个前缀 “a”、“ab”、“abc” 和 “abcd”。 每个前缀的分数都是 1 总计 answer[0] 1 1 1 1 4 。 提示 1 words.length 1000 1 words[i].length 1000 words[i] 由小写英文字母组成 字典树 字典树各节点记录子树数量。 针对每个word 一次查询word[0…j] 子孙的数量累加就可以了。 代码 核心代码 namespace NTmp {templateclass TData char, int iTypeNum 26, TData cBegin aclass CTrieNode{public:~CTrieNode(){for (auto [tmp, ptr] : m_dataToChilds) {delete ptr;}}CTrieNode* AddChar(TData ele, int iMaxID){ #ifdef _DEBUGif ((ele cBegin) || (ele cBegin iTypeNum)){return nullptr;} #endifconst int index ele - cBegin;auto ptr m_dataToChilds[ele - cBegin];if (!ptr){m_dataToChilds[index] new CTrieNode(); #ifdef _DEBUGm_dataToChilds[index]-m_iID iMaxID;m_childForDebug[ele] m_dataToChilds[index]; #endif}m_dataToChilds[index]-m_iChildChildCount;return m_dataToChilds[index];}CTrieNode* GetChild(TData ele){ #ifdef _DEBUGif ((ele cBegin) || (ele cBegin iTypeNum)){return nullptr;} #endifreturn m_dataToChilds[ele - cBegin];}protected: #ifdef _DEBUGint m_iID -1;std::unordered_mapTData, CTrieNode* m_childForDebug; #endifpublic:int m_iLeafIndex -1;int m_iChildChildCount 0;protected://CTrieNode* m_dataToChilds[iTypeNum] { nullptr };//空间换时间 大约216字节//unordered_mapint, CTrieNode* m_dataToChilds;//时间换空间 大约56字节mapint, CTrieNode* m_dataToChilds;//时间换空间,空间略优于哈希映射数量小于256时时间也优。大约48字节};templateclass TData char, int iTypeNum 26, TData cBegin aclass CTrie{public:int GetLeadCount(){return m_iLeafCount;}CTrieNodeTData, iTypeNum, cBegin* AddA(CTrieNodeTData, iTypeNum, cBegin* par, TData curValue){auto curNode par-AddChar(curValue, m_iMaxID);FreshLeafIndex(curNode);return curNode;}templateclass ITint Add(IT begin, IT end){auto pNode m_root;for (; begin ! end; begin){pNode pNode-AddChar(*begin, m_iMaxID);}FreshLeafIndex(pNode);return pNode-m_iLeafIndex;}templateclass ITCTrieNodeTData, iTypeNum, cBegin* Search(IT begin, IT end){auto ptr m_root;for (; begin ! end; begin){ptr ptr-GetChild(*begin);if (nullptr ptr){return nullptr;}}return ptr;}CTrieNodeTData, iTypeNum, cBegin m_root;protected:void FreshLeafIndex(CTrieNodeTData, iTypeNum, cBegin* pNode){if (-1 pNode-m_iLeafIndex){pNode-m_iLeafIndex m_iLeafCount;}}int m_iMaxID 0;int m_iLeafCount 0;};} class Solution { public:vectorint sumPrefixScores(vectorstring words) {NTmp::CTrie trie;for (const auto s: words) {trie.Add(s.begin(), s.end());}vectorint vRet;for (const auto s : words) {auto ptr trie.m_root;int cnt 0;for (const auto ch : s) {ptr ptr-GetChild(ch);cnt ptr-m_iChildChildCount;}vRet.emplace_back(cnt);}return vRet;} };测试用例 templateclass T void Assert(const vectorT v1, const vectorT v2) {if (v1.size() ! v2.size()){assert(false);return;}for (int i 0; i v1.size(); i){assert(v1[i] v2[i]);} }templateclass T void Assert(const T t1, const T t2) {assert(t1 t2); }int main() {vectorstring words;{Solution slu;words { abc, ab, bc, b };auto res slu.sumPrefixScores(words);Assert({ 5,4,3,2 }, res);}{Solution slu;words {abcd };auto res slu.sumPrefixScores(words);Assert({ 4 }, res);} }扩展阅读 视频课程 有效学习明确的目标 及时的反馈 拉伸区难度合适可以先学简单的课程请移步CSDN学院听白银讲师也就是鄙人的讲解。 https://edu.csdn.net/course/detail/38771 如何你想快速形成战斗了为老板分忧请学习C#入职培训、C入职培训等课程 https://edu.csdn.net/lecturer/6176 相关下载 想高屋建瓴的学习算法请下载《喜缺全书算法册》doc版 https://download.csdn.net/download/he_zhidan/88348653 我想对大家说的话《喜缺全书算法册》以原理、正确性证明、总结为主。闻缺陷则喜是一个美好的愿望早发现问题早修改问题给老板节约钱。子墨子言之事无终始无务多业。也就是我们常说的专业的人做专业的事。如果程序是一条龙那算法就是他的是睛 测试环境 操作系统win7 开发环境 VS2019 C17 或者 操作系统win10 开发环境 VS2022 C17 如无特殊说明本算法用**C**实现。
http://www.hkea.cn/news/14308607/

相关文章:

  • asp.net网站第一次运行慢域名什么意思
  • 网站建设温江网站首页的概念
  • 网站app免费下载软件大全什么是搜索引擎优化?
  • 淄博市住房和城乡建设局官方网站网站目录怎么做外链
  • 三合一模板网站湖北什么是网站建设
  • 什么程序做网站用户体验好的网站
  • 网站导航背景 蓝色做网站团队
  • 网站源码文件安装教程奎屯网站制作
  • 网站开发示例宁波网站建设开发多少钱
  • 站长工具ip地址查询企业建设营销型网站步骤
  • 公司网站上传ftp教程企业信息化管理软件有哪些
  • 苏州公司网站建设电话国内wordpress视频主题
  • 网站投票功能天元建设集团有限公司座机号码
  • 网站建设与优化wordpress迁移保留账号
  • .net 网站开发视频wordpress微现场
  • 网站整体设计流程外贸网站 模板
  • 网站如何做地面推广关于网站建设的建议征集
  • php做网站 价格wordpress新建留言板
  • 手机网站开发之列表开发中国互联网公司排名2022
  • 怎么补网站漏洞云设计工具
  • 建设通类型的网站如何快速提升网站关键词排名
  • 淘宝客网站虚拟主机0元开店0元铺货无加盟费开网店
  • 做网站平台应该注意哪些网站建设常用的开发语言介绍
  • php搭建网站教程洛宁网站开发
  • 阿里云可以放几个网站罗湖商城网站设计价格
  • 视觉设计专业seo搜索推广
  • 湛江正规网站制作方案不能制作网页的软件是
  • 小型网站开发惠州做网站乐云seo轻松上线
  • 镇江网站建设top关键词seo优化
  • 小型企业建设网站网站建设工作进度