B - 辛普森一家的隐藏人才(KMP)

简介: B - 辛普森一家的隐藏人才(KMP)

题目:

荷马:玛吉,我刚想办法发现一些我们不知道的人才。

玛吉:是的,它是什么?

荷马:以我为例。我想知道我是否有政治才能,好吗?

玛吉:好的。

荷马:所以我采取一些政治家的名字,克林顿说,并试图找到最长前缀的长度

以克林顿的名字命名,这是我名字中的后缀。这就是我与克林顿这样的政治家有多接近

Marge:为什么选择最长的前缀是后缀???

荷马:嗯,我们的天赋深藏在我们自己里面,Marge。

玛吉:那你有多近?

荷马:0!

玛奇:我并不感到惊讶。

荷马:但是你知道,你必须拥有隐藏在你身边的一些真正的数学天赋。

玛奇:怎么样?

荷马:黎曼和马乔里3分!

Marge:Riemann到底是谁?

荷马:没关系。

编写一个程序,当给定字符串s1和s2时,找到s1的最后一个前缀,即s2的后缀。

input

输入包含两行。第一行包含s1,第二行包含s2。您可以假设所有字母都是小写的。

output

输出由一行组成,其中包含最长字符串,该字符串是s1的前缀和后缀s2,后跟该前缀的长度。如果最长的字符串是空字符串,则输出应为0。

s1和s2的长度最多为50000。

Sample Input

clinton
homer
riemann
marjorie

Sample Output

0
rie 3

解题思路:

这个题让我们求出最长的字符串,该长字符串是s1最后一个前缀,s2最后一个后缀,所以把s1,s2两个字符串连接成一个字符串,然后求出next[]数组,既字符串的长度就是next[ (s1和s2和起来的字符串长度)],注意:可能会出现类似 aaa,aaaaaa 这样的两个字符串,所以我们在输出时要先判断最大长度是否与本身输入字符串大,如果超过了本身字符串长度,就输出两个字符串中较短的那个。

程序代码:

#include<stdio.h>
#include<string.h>
char s[100000],s1[55000],s2[55000];
int n,m,k,next[100000],t,t1;
void get();
int main()
{
  int i,j,l;
  while(scanf("%s%s",s1,s2)!=EOF)
  {
    i=0;j=0;
    n=strlen(s1);
    m=strlen(s2);
    memset(next,0,sizeof(next));
    memset(s,0,sizeof(s));//注意字符串要清零h
    for(i=0;i<n;i++)
      s[i]=s1[i];
    for(j=0;j<m;j++)
      s[i++]=s2[j];
    k=strlen(s);
    get(); 
        
  }
  return 0;
}
void get()
{
  int i=1,j=0;
  int max;
  next[0]=-1;
  while(i<k)
  {
    if(j==-1||s[i]==s[j])
    {
      i++;
      j++;
      next[i]=j;
    }
    else
      j=next[j];
  }
  max=next[k];
  if(max>n) max=n;
  if(max>m) max=m;
  if(max==0)
    printf("%d\n",max);
  else
  {
    for(i=k-max;i<k;i++)
      printf("%c",s[i]);
    printf(" %d\n",max);
  }
  
}
相关文章
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考:云服务器各收费项目收费标准与活动价格
阿里云服务器收费项目有实例价格、预留实例券、专有宿主机、块存储价格、存储容量单位包、带宽价格和快照服务价格,收费模式有包年包月和按量付费模式。本文为大家汇总了2025年阿里云服务器各个收费项目的最新收费标准与云服务器的最新活动价格,以供参考和了解。
|
6天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1911 6
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
4天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
640 110
|
14天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2527 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
14天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
1384 2
|
12天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
1355 2
|
16天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
1434 54
|
12天前
|
自然语言处理 测试技术 API
通义千问Qwen3.8-Max-Preview全功能解析:2.4万亿参数旗舰模型深度使用指南
在大模型技术持续迭代的当下,通义千问推出的Qwen3.8-Max-Preview作为新一代旗舰预览版模型,凭借2.4万亿参数的超大规模、多模态融合能力与全场景适配特性,成为开发者与企业用户探索AI应用的核心工具。该模型采用稀疏混合专家(MoE)架构,是通义千问首个突破万亿参数的多模态模型,可同时处理文本、图像、视频与文档等多种数据形态,在全栈代码开发、复杂逻辑推理、长文档分析与多智能体协作等场景实现跨越式升级。本文将全面拆解Qwen3.8-Max-Preview的核心功能,详解API调用流程与配置方法,覆盖多场景实战技巧,帮助用户快速掌握这款旗舰模型的使用方法,充分释放其性能潜力。
677 2