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

西宁 专业网站建设重庆网站设计

西宁 专业网站建设,重庆网站设计,上海网站建设上海黄金,wordpress 对象存储插件题目链接:点击打开链接 题目描述:给定一个字母转换表,然后给一个字符串,字符串的前一部分经字母转换表转换过之后的字符,字符串的后面一部分是未经转换之前的,后面的部分可能不完整,但前面被转…

题目链接:点击打开链接

题目描述:给定一个字母转换表,然后给一个字符串,字符串的前一部分经字母转换表转换过之后的字符,字符串的后面一部分是未经转换之前的,后面的部分可能不完整,但前面被转换过之后的一定是完整的,求补充不完整的部分(当然也有可能是完整的,如果是完整的直接输出即可),要求尽可能的短?


解题思路:扩展KMP算法(匹配前缀)

分析:相当于让字符串的后面部分尽可能长的匹配前面的部分,所以我们将原串st复制给str1,然后根据转换表,把st全部逆转回来;然后将st当作模板串,str1为带匹配的串,从str1[(len+1)/2]开始匹配即可

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#define MAXN 100010
using namespace std;void getNext(char* x,int m,int* exnext){exnext[0]=m;int j=0;while(j+1<m&&x[j]==x[j+1]) j++;exnext[1]=j;int k=1;for(int i=2;i<m;++i){int p=exnext[k]+k-1;int L=exnext[i-k];if(i+L<p+1) exnext[i]=L;else{j=max(0,p-i+1);while(i+j<m&&x[i+j]==x[j]) j++;exnext[i]=j;k=i;}}
}
void EKMP(char* x,int m,char* y,int n,int* exnext,int* extend){getNext(x,m,exnext);int j=0;while(j<n&&j<m&&x[j]==y[j]) j++;extend[0]=j;int k=0;for(int i=1;i<n;++i){int p=extend[k]+k-1;int L=exnext[i-k];if(i+L<p+1) extend[i]=L;else{j=max(0,p-i+1);while(i+j<n&&j<m&&y[i+j]==x[j]) j++;extend[i]=j;k=i;}}
}
char ascii[30];
char st1[MAXN];
char st[MAXN];
int exnext[MAXN];
int extend[MAXN];
int main(){int T;scanf("%d",&T);while(T--){scanf("%s",st1);scanf("%s",st);for(int i=0;i<26;i++)ascii[st1[i]-'a']='a'+i;int len=strlen(st);memcpy(st1,st,len);for(int i=0;i<len;++i)st[i]=ascii[st[i]-'a'];EKMP(st,len,st1,len,exnext,extend);int i;for(i=(len+1)/2;i<len;i++) if(extend[i]==len-i)break;for(int j=0;j<i;++j) printf("%c",st1[j]);for(int j=0;j<i;++j) printf("%c",st[j]);printf("\n");}return 0;
}


http://www.lbrq.cn/news/2780983.html

相关文章:

  • 做图文链接网站武汉大学人民医院院长
  • Wordpress怎么配合HTML江西seo推广方案
  • A00网站建设windows优化大师和鲁大师
  • 网站代码规范网络公司有哪些
  • 做php网站用什么软件好免费引流在线推广
  • 安徽做网站哪家好搜索引擎营销的原理是什么
  • wordpress 百度cdnseod的中文意思
  • 阿里云做网站的代码每天新闻早知道
  • 江门网站建设公司开发网站用什么软件
  • 浦口区网站建设质量推荐今日新闻内容
  • 凡客建站免费的可以用多久郴州网络推广外包公司
  • 一个服务器下怎么做两个网站搜狗推广登陆
  • 武汉最大的广告公司网站seo推广
  • 深圳网站优化企业软文小故事200字
  • 首码项目推广网站电商平台怎么做
  • 北京模板网站开发全包seo入门培训学多久
  • 怎么做网站打赏农产品推广方案
  • 服务器分配网络提高网站访问速度b站怎么推广
  • 夸网站做的好怎么夸护肤品推广软文
  • 太原公司网站建设百度网盘云资源搜索引擎
  • 企业网站建设方案包含百度如何注册公司网站
  • 企业网站的建立与维护论文常德网站建设制作
  • www.qd2008 网站建设百度站长平台app
  • 昆明网站做的好的公司哪家好汕头seo推广外包
  • 海南省住房和城市建设厅网站青岛百度推广seo价格
  • 最专业的网站建设推广网站查询
  • 西安市住宅和城乡建设局网站baike seotl
  • 网站公司广州360关键词指数查询
  • 江苏省句容建设局网站拼多多关键词怎么优化
  • 信息型企业网站有哪些百度客户端下载
  • 海量数据测试指南与实战
  • Linux上安装MySQL 二进制包
  • C语言:字符函数与字符串函数(1)
  • Ansible 角色管理
  • AP6275S AMPAK正基WiFi6模块方案与应用
  • AiPPT怎么样?好用吗?