news 2026/4/16 13:31:00

leetcode 困难题 745.Prefix and Suffix Search 前缀和后缀搜索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 困难题 745.Prefix and Suffix Search 前缀和后缀搜索

Problem: 745. Prefix and Suffix Search 前缀和后缀搜索

解题过程

ASCII内,"{"刚好在"z"后面,所以算是特殊字符,按照提示拼起来,然后放入到字典树当中去,并且在{后面的前缀需要求出最大的索引

查询的话直接在字典树上面找就可以,若是空则-1,最后返回最大的索引

Code

class trie { public: bool isend = false; int index = -1; trie* arr[27] = {nullptr}; }; class WordFilter { public: trie* root, *ptr; WordFilter(vector<string>& words) { root = new trie; string tp; for( int i = 0; i < words.size(); i++ ) { ptr = root; tp = "-" + words[i] + "{" + words[i]; while(true) { ptr = root; tp = tp.substr(1, tp.size() - 1); bool pre = false; for(int j = 0; j < tp.size(); j++) { if(ptr->arr[tp[j]-'a'] == nullptr) { ptr->arr[tp[j]-'a'] = new trie; } ptr = ptr->arr[tp[j]-'a']; if(pre) { ptr->index = max(ptr->index, i); } if(tp[j]=='{') pre = true; } if(tp[0]=='{') break; } } } int f(string pref, string suff) { string combine = suff + "{" + pref; ptr = root; for(int i = 0; i < combine.size(); i++) { if(ptr->arr[combine[i]-'a']==nullptr) { return -1; } ptr = ptr->arr[combine[i]-'a']; } return ptr->index; } }; /** * Your WordFilter object will be instantiated and called as such: * WordFilter* obj = new WordFilter(words); * int param_1 = obj->f(pref,suff); */
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 19:00:17

电影院购票|基于springboot 电影院购票系统(源码+数据库+文档)

电影院购票 目录 基于springboot vue电影院购票系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue电影院购票系统 一、前言 博主介绍&#xff1a…

作者头像 李华
网站建设 2026/4/16 13:27:10

拒绝“面条代码”!Flutter 校园项目的“三层架构”实战

拒绝“面条代码”&#xff01;Flutter 校园项目的“三层架构”实战 作为一名计算机专业的学生&#xff0c;你是否遇到过这种情况&#xff1a; 为了赶课程设计或hackathon&#xff0c;在 StatefulWidget 的 build 方法里直接写 Dio.get &#xff0c;把网络请求、JSON解析、UI更…

作者头像 李华
网站建设 2026/4/9 11:30:10

‌面试技巧:拿下测试岗位的秘诀

软件测试行业正经历着自动化、AI驱动的深刻变革&#xff0c;测试岗位的面试要求也随之升级。对于软件测试从业者而言&#xff0c;仅掌握基础测试知识已不足以在竞争中脱颖而出。‌一、面试前的充分准备&#xff1a;奠定成功基础‌面试前的准备是决定成败的第一步。测试岗位的面…

作者头像 李华
网站建设 2026/4/16 12:21:49

掌握 Open Graph 协议:让你的网页在社交媒体上大放异彩

&#x1f31f; 什么是 Open Graph 协议&#xff1f; Open Graph 协议&#xff08;简称 OG 协议&#xff09;是由 Facebook 在 2010 年推出的一套技术规范。它的核心目标是允许任何网页成为一个“富对象”&#xff08;rich object&#xff09;&#xff0c;使其在社交网络&#…

作者头像 李华