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

校园网站建设情况通报国内免费设计素材网站

校园网站建设情况通报,国内免费设计素材网站,椒江做网站的公司,g时代网站建设文章目录1. 题目2. 解题2.1 哈希map2.2 Trie树1. 题目 给定一组唯一的单词#xff0c; 找出所有不同 的索引对(i, j)#xff0c;使得列表中的两个单词#xff0c; words[i] words[j] #xff0c;可拼接成回文串。 示例 1: 输入: [abcd,dcba, 找出所有不同 的索引对(i, j)使得列表中的两个单词 words[i] words[j] 可拼接成回文串。 示例 1: 输入: [abcd,dcba,lls,s,sssll] 输出: [[0,1],[1,0],[3,2],[2,4]] 解释: 可拼接成的回文串为 [dcbaabcd,abcddcba,slls,llssssll]示例 2: 输入: [bat,tab,cat] 输出: [[0,1],[1,0]] 解释: 可拼接成的回文串为 [battab,tabbat]来源力扣LeetCode 链接https://leetcode-cn.com/problems/palindrome-pairs 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题 2.1 哈希map class Solution { public:vectorvectorint palindromePairs(vectorstring words) {unordered_mapstring, int w_id;setint wdLen;for(int i 0; i words.size(); i){w_id[words[i]] i;//字符串idxwdLen.insert(words[i].size());//字符串长度}vectorvectorint ans;string front, back, revword;for(int i 0; i words.size(); i){revword words[i];//逆序的字符串reverse(revword.begin(),revword.end());if(w_id.count(revword) w_id[revword] ! i)ans.push_back({i, w_id[revword]});//字符串的逆序存在//遍历words[i]可能的子串长度,寻找前部分存在或者后部分存在//且自身剩余的子串为回文int len words[i].size();for(auto it wdLen.begin(); *it len; it){front words[i].substr(0, *it);reverse(front.begin(),front.end());back words[i].substr(*it);if(w_id.count(front) ispalind(back))//前缀的逆存在ans.push_back({i, w_id[front]});}for(auto it wdLen.begin(); *it len; it){front revword.substr(0, *it);back revword.substr(*it);if(w_id.count(front) ispalind(back))//后缀的逆存在ans.push_back({w_id[front], i});}}return ans;}bool ispalind(string s){int l 0, r s.size()-1;while(l r)if(s[l] ! s[r--])return false;return true;} };904 ms 45.6 MB 2.2 Trie树 class trie { public:unordered_mapchar, trie* next;int suffix -1;void insert(string s, int idx){trie *cur this;for(int i s.size()-1; i 0; --i)//单词逆序插入{if(!cur-next[s[i]])cur-next[s[i]] new trie();cur cur-next[s[i]];}cur-suffix idx;//结束时记录单词编号} }; class Solution { public:vectorvectorint palindromePairs(vectorstring words) {trie * t new trie(), *cur;vectorvectorint ans;string revword;for(int i 0; i words.size(); i){t-insert(words[i], i);}for(int i 0; i words.size(); i){int n words[i].size(), j, k;cur t;for(j 0; j n; j){if(cur-suffix ! -1 cur-suffix ! i ispalind(words[i], j, n-1))//单词的前缀的逆序在trie中剩余的为回文ans.push_back({i, cur-suffix});if(!cur-next[words[i][j]])break;cur cur-next[words[i][j]];}for(j 0; j n; j)//等号上下只取一次否则答案有重复的{ // j n 时包含了完整字符串的情况cur t;for(k n-j; k n; k)//遍历单词的后缀{if(!cur-next[words[i][k]])break;cur cur-next[words[i][k]];}if(kn cur-suffix ! -1 cur-suffix ! i ispalind(words[i], 0, n-j-1))//该后缀的逆在trie中且前部分为回文ans.push_back({cur-suffix, i});}}return ans;}bool ispalind(string s, int l, int r){while(l r)if(s[l] ! s[r--])return false;return true;} };940 ms 141.3 MB trie 改用数组 trie* next[26] {NULL}; 提高运行效率 280 ms 208.5 MB 我的CSDN博客地址 https://michael.blog.csdn.net/ 长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步
http://www.pierceye.com/news/552402/

相关文章:

  • 网站建设费用申报佛山电脑培训班哪里有
  • 免费网站服务器厦门网站建设推广哪家好
  • 青海海东平安县建设局网站如何建设旅游网站
  • 成都响应式网站开发百度里面的站长工具怎么取消
  • 手机购物网站设计广告设计有限公司
  • 新手制作网站wordpress lamp 教程
  • 响应式的网站做优化好吗wordpress删掉自豪
  • 做网站第一步创建网站根目录
  • vs2010做网站前台专门做试题的网站
  • 柳州集团学校网站建设做美食推广的网站
  • 网站开发 发送邮件功能深圳做分销商城网站
  • 网站备案 取消网上智慧团建官网入口
  • 网站开发 无代码app 外包开发公司
  • 做网站应该用什么配置的手提电脑免费微商城小程序模板
  • 义乌外贸网站建设公司服务外包和劳务外包区别
  • 四川长昕建设工程有限公司网站兰州网站哪里做
  • 电子商务网站规划与管理申请一个域名后怎么做网站
  • 中小企业网站制作方法桂林景区网站策划
  • shopify做全品类网站提交链接
  • 网站建设和运营哪家公司好宠物医疗设计素材网站
  • 泰州网站制作公司中国空间站机械臂
  • 信誉好的常州网站建设网监备案网站更换域名
  • 淮南品牌网站建设电话南昌网站建设q479185700棒
  • 富阳区住房和城乡建设局网站广州市住房保障和房屋管理局
  • 江门建设局网站上海住房和城乡建设部网站
  • 开一个网站需要什么建设商务网站的方案
  • asp.net网站开发 pdf全球互联网中心在哪里
  • 做外贸网站要有域名学什么可以做网站
  • 服装高级定制品牌app排名优化
  • 济南推广网站建设保定seo网络推广