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

做搜狐网站页面广州网络公司人气排名

做搜狐网站页面,广州网络公司人气排名,wordpress文章添加忽略,搜索网站排名优化策略看了好久的Manacher算法#xff0c;觉得还是要自己画一遍#xff0c;自己把代码写一遍才能理解 下面分享一下#xff0c;如果有错#xff0c;希望指正 简陋版本的#xff0c;但是他基本只是做到了求取最长回文字符串#xff0c;严格来说它并不是Manacher’s Algorithm-…看了好久的Manacher算法觉得还是要自己画一遍自己把代码写一遍才能理解 下面分享一下如果有错希望指正 简陋版本的但是他基本只是做到了求取最长回文字符串严格来说它并不是Manacher’s Algorithm-马拉车算法 #includestdio.h 、char qdu[100050]; int manachar() {int i;int res 0;for (i 1; qdu[i]; i){int l i;int r i;while (qdu[i] qdu[r 1])r;i r;while (qdu[l - 1] qdu[r 1]) {r;l--;}if (res r - l 1)res r - l 1;}return res; } int main() {int loop;qdu[0] $;gets(qdu 1);printf(%d\n, manachar());return 0; }Manacher’s Algorithm-马拉车算法 时间复杂度O(n) 互联网侦察微信公众号讲解虽然文章很长但是他讲解的十分清楚 这篇博文简单的介绍了思路 下面是核心代码我们先看图 //Manacher算法计算过程 int MANACHER(char *st, int len) {int mx 0, ans 0, po 0;//mx即为当前计算回文串最右边字符的最大值for (int i 1; i len; i){if (mx i)Len[i] min(mx - i, Len[2 * po - i]);//在Len[j]和mx-i中取个小elseLen[i] 1;//如果imx要从头开始匹配while (st[i - Len[i]] st[i Len[i]])Len[i];if (Len[i] i mx)//若新计算的回文串右端点位置大于mx要更新po和mx的值{mx Len[i] i;po i;}ans max(ans, Len[i]);}return ans - 1;//返回Len[i]中的最大值-1即为原串的最长回文子串额长度 }首先对字符串进行预处理处理原因是防止偶数问题可看前面的博文 处理后的结果进行Manacher算法。 第一个是0其余默认从1开始计数 首先看3 的左右都是#号所以11 2 到了1它可以数到6碰到了就不相等了而他的回文字符串长度也是6 等到了1右边的#号我们就可以根据对称特点求出他和1左边的#号是同一个值前提是这个没有超过有边界黄色横线所示 到这里基本就结束了 这里给出完整代码可以自己跑一编看看效果 #define maxn 1000010 #include cstdio #include iostream #include algorithmusing namespace std;char str[maxn] {3212343219};//原字符串 char tmp[maxn 1];//转换后的字符串 int Len[maxn 1];//转换原始串 int INIT(char *st) {int i, len strlen(st);tmp[0] ;//字符串开头增加一个特殊字符防止越界for (i 1; i 2 * len; i 2){tmp[i] #;tmp[i 1] st[i / 2];}tmp[2 * len 1] #;tmp[2 * len 2] $;//字符串结尾加一个字符防止越界tmp[2 * len 3] 0;return 2 * len 1;//返回转换字符串的长度 } //Manacher算法计算过程 int MANACHER(char *st, int len) {int mx 0, ans 0, po 0;//mx即为当前计算回文串最右边字符的最大值for (int i 1; i len; i){if (mx i)Len[i] min(mx - i, Len[2 * po - i]);//在Len[j]和mx-i中取个小elseLen[i] 1;//如果imx要从头开始匹配while (st[i - Len[i]] st[i Len[i]])Len[i];if (Len[i] i mx)//若新计算的回文串右端点位置大于mx要更新po和mx的值{mx Len[i] i;po i;}ans max(ans, Len[i]);}return ans - 1;//返回Len[i]中的最大值-1即为原串的最长回文子串额长度 }int main() {int len INIT(str);MANACHER(tmp, len); }
http://www.sadfv.cn/news/30790/

相关文章:

  • 做的网站怎么让别人也能看到上海中心设计公司是谁
  • 为女朋友做网站网站建设费可摊几年
  • html5网站代码上海官网网址
  • 宁阳网站建设深圳营销型企业网站
  • 网站如何做信息表丰台建设企业网站
  • 云龙微网站开发宁波妇科专家哪个最好
  • 学校建设微网站的方案免费网站域名空间申请
  • 淄博住房和城乡建设局网站南充市房地产网官方网站
  • 如何夸奖一个网站做的好最近一周新闻大事摘抄
  • 中国智慧城市建设门户网站运维工程师
  • 网站开发登录要做哪些验证河南郑州网站关键词排名助手
  • wordpress 分隔符 sp网站维护优化
  • 兰州网站优化服务王野天演员
  • 网站产品链接怎么做上海国外网站建设
  • 深圳龙岗淘宝网站建设公司有哪些铁道部售票网站多少钱建设
  • 手机模板网站wordpress edu 2.0
  • 网站编程是什么意思往网站上做新东西需要什么
  • 有没有做卡哇伊的企业网站深圳画册设计龙华
  • 广州哪家公司做网站好什么是自主设计网站
  • 个人博客网站制作搭建任县网站建设
  • 亳州建设机械网站什么都能看的浏览器
  • 湖南营销网站建设设计最好看的WordPress 音乐播放器
  • 徐州做网站最好的公司十大erp系统
  • 象山县城乡建设局网站网站软文标题
  • 网站设计 广州门户网站建设的成果
  • 深圳极速网站建设服务天津企业网站建设开发维护
  • 网站建设上传文件chmod wordpress
  • 做家乡网站源代码营销型网站的基本模板
  • 英国男女做那个视频网站交易类网站建设功能表
  • 学校门户网站作用wordpress多文章