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

BISHI92 【模板】前缀函数(kmp)


思路

求解代码

publicstaticvoidmain(String[]args)throwsIOException{// 创建缓冲读取器,用于从标准输入读取数据BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));// 创建打印输出器,用于向标准输出打印数据PrintWriterout=newPrintWriter(newOutputStreamWriter(System.out));// 读取测试用例的数量TintT=Integer.parseInt(br.readLine().trim());// 处理每个测试用例while(T-->0){// 读取一行输入并分割成字符串数组String[]s=br.readLine().trim().split("\\s+");// 获取字符串的长度nintn=Integer.parseInt(s[0]);// 计算前缀函数数组int[]pi=computePre(s[1],n);// 输出前缀函数数组,元素间用空格分隔for(inti=0;i<n;i++){out.print(pi[i]+(i==n-1?"":" "));}// 换行out.println();}// 刷新输出缓冲区,确保所有输出都被写出out.flush();// 关闭输出流out.close();// 关闭输入流br.close();}/** * 计算字符串的前缀函数(Prefix Function) * 前缀函数pi[i]表示字符串s[0..i]的最长相等前后缀的长度(不包括s[0..i]本身) * * @param s 输入的字符串 * @param n 字符串的长度 * @return 返回前缀函数数组pi,其中pi[i]表示s[0..i]的最长相等前后缀长度 */privatestaticint[]computePre(Strings,intn){int[]pi=newint[n];// 初始化前缀函数数组,长度为n// 从第二个字符开始遍历字符串for(inti=1;i<n;i++){intj=pi[i-1];// 初始化j为前一个字符的前缀函数值// 当j大于0且当前字符不匹配时,通过前缀函数回退while(j>0&&s.charAt(i)!=s.charAt(j)){j=pi[j-1];// 回退到前一个可能匹配的位置}// 如果当前字符匹配,则增加匹配长度if(s.charAt(i)==s.charAt(j)){j++;}// 将当前字符的前缀函数值存入数组pi[i]=j;}returnpi;// 返回计算得到的前缀函数数组}
http://www.jsqmd.com/news/440469/

相关文章:

  • 2026年角钢厂家实力推荐榜:镀锌角钢/S355J0/AH36/Q355B/5#角钢/S275/Q420/电钢角钢/欧标日标角钢,精选源头工厂,坚固耐用的结构之选! - 品牌企业推荐师(官方)
  • 2024智能家居Agentic AI技术白皮书解读:提示工程架构师划重点
  • 告别“美丽刑具”!2026职场女性“久穿不累”高跟鞋选购全攻略 - 数字营销分析
  • 虚拟环境工具下创建独立的 3.11 环境 - yi
  • 旺旺的零食健康吗?从爱至尊、Want Power、FixXBody,看旺旺如何布局“更轻负担”零食 - Top品牌推荐官
  • jenkins对接gitlab
  • Flutter 三方库 vane 的鸿蒙化适配指南 - 构建工业级 Dart 服务端、中间件驱动的高性能 API、鸿蒙全栈开发实战
  • 阿里oceanbase-ce:纯纯手工创建实例、初始化 ...
  • C#静态构造函数真的总是最先执行吗?
  • 每日一题:什么是限流?.NET 中如何实现?
  • 前后端交互中时间的格式化与解析,将会面临哪些问题?
  • yolo go onnx
  • 2026.3.5总结 安装claude code 并在vscode上调用
  • gcsfuse中的锁与偏序理论
  • 大模型训练的硬件基础:GPU内存层级、分块与并行策略
  • 2026新春零食囤货推荐:《旺旺大礼包》种类多性价比高的新年限定年味零食大礼包 - Top品牌推荐官
  • 2026全国最新纯磷虾油品牌推荐 - 十大品牌榜
  • 在云主机上安装openclaw
  • 笔耕不辍,聊聊 7 种实现异步编程的方式
  • 静态链接程序的执行流程分析
  • “政务场景AI落地”并非替代人力,而是通过技术赋能,让政务工作者更专注于需要判断力、共情力与协调力的核心职责
  • Agentic AI提示工程设计的关键性能指标:架构师该关注哪些?
  • 2026转行秘籍:成为大模型产品经理的全面指南,AI产品经理=大模型产品经理?
  • 32 图 | 玩转 Spring Cloud Gateway + JWT 登录认证
  • 拆解一款零数据上传的在线工具箱:前端实现与工程化思路
  • 为什么 mysql 的 count() 方法这么慢?找到内鬼了
  • 2026全国最新进口磷虾油品牌推荐:适配多维健康需求,这款实力之选值得关注 - 十大品牌榜
  • CMake 最小可跑实战:从 0 构建第一个 C++ 可执行程序(C++ 工程入门第二课)
  • 2026年全国南极磷虾油品牌优选指南 四大品质品牌参考 - 十大品牌榜
  • 奇淫巧技,CompletableFuture 异步多线程是真的优雅