BISHI92 【模板】前缀函数(kmp)
思路求解代码publicstaticvoidmain(String[]args)throwsIOException{// 创建缓冲读取器用于从标准输入读取数据BufferedReaderbrnewBufferedReader(newInputStreamReader(System.in));// 创建打印输出器用于向标准输出打印数据PrintWriteroutnewPrintWriter(newOutputStreamWriter(System.out));// 读取测试用例的数量TintTInteger.parseInt(br.readLine().trim());// 处理每个测试用例while(T--0){// 读取一行输入并分割成字符串数组String[]sbr.readLine().trim().split(\\s);// 获取字符串的长度nintnInteger.parseInt(s[0]);// 计算前缀函数数组int[]picomputePre(s[1],n);// 输出前缀函数数组元素间用空格分隔for(inti0;in;i){out.print(pi[i](in-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[]pinewint[n];// 初始化前缀函数数组长度为n// 从第二个字符开始遍历字符串for(inti1;in;i){intjpi[i-1];// 初始化j为前一个字符的前缀函数值// 当j大于0且当前字符不匹配时通过前缀函数回退while(j0s.charAt(i)!s.charAt(j)){jpi[j-1];// 回退到前一个可能匹配的位置}// 如果当前字符匹配则增加匹配长度if(s.charAt(i)s.charAt(j)){j;}// 将当前字符的前缀函数值存入数组pi[i]j;}returnpi;// 返回计算得到的前缀函数数组}

相关新闻

C#静态构造函数真的总是最先执行吗?

C#静态构造函数真的总是最先执行吗?

在 C# 开发圈子里,有一个流传很广的说法,甚至经常被当成面试题:“当第一次访问某个类型时,该类型的静态构造函数一定会最先执行。”听起来好像挺有道理,但严格来说,这个说法并不完全准确。根据 ECMA-335 CL…

2026/7/5 9:53:25 阅读更多 →
CMake 最小可跑实战:从 0 构建第一个 C++ 可执行程序(C++ 工程入门第二课)

CMake 最小可跑实战:从 0 构建第一个 C++ 可执行程序(C++ 工程入门第二课)

本系列为《CMake 工程化进阶》完整 8 篇体系。 本篇目标:真正跑通 CMake 的完整构建流程。上一节我们讲清了:编译器构建工具构建系统CMake 在工程中的位置这篇开始实战。我们只做一件事:用 CMake 构建第一个 C 可执行程序。一、准备一个最小工…

2026/7/3 5:41:00 阅读更多 →
给分库分表的 ShardingSphere 提了个PR,这Bug居然改了

给分库分表的 ShardingSphere 提了个PR,这Bug居然改了

说来惭愧,干了 10 来年程序员,还没有给开源做过任何贡献,以前只知道嘎嘎写,出了问题嘎嘎改,从来没想过提个 PR 去修复他,最近碰到个问题,发现挺简单的,就随手提了个 PR 过去。问题问…

2026/5/17 8:33:05 阅读更多 →

最新新闻

基于Databricks的企业级AI Agent生产实践:从架构设计到部署运维

基于Databricks的企业级AI Agent生产实践:从架构设计到部署运维

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你正在考虑将AI Agent引入企业生产环境,可能会面临这样的困境:在本地开发环境中跑得飞快的Agent原型&…

2026/7/6 3:42:09 阅读更多 →
飞书卡片表格渲染踩坑记:从 Markdown 到原生 table 组件的迁移实战

飞书卡片表格渲染踩坑记:从 Markdown 到原生 table 组件的迁移实战

背景 团队每日通过飞书推送项目晨报和日报,内容从项目管理平台实时拉取,包含任务统计、进度列表、风险项等多维数据,天然需要表格来承载。 最初的实现方案是飞书消息推送 纯文本,格式简陋,阅读体验差。于是决定升级为…

2026/7/6 3:40:09 阅读更多 →
构建AI毒舌投资人:用Prompt工程验证副业想法的可行性

构建AI毒舌投资人:用Prompt工程验证副业想法的可行性

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在折腾各种 AI 工具时,我发现一个挺有意思的现象:很多人拿到一个强大的 AI 模型,比如 DeepSee…

2026/7/6 3:40:09 阅读更多 →
认识安企CMS-系统和模板文件结构

认识安企CMS-系统和模板文件结构

了解安企CMS安装后的完整目录结构,掌握主程序、配置文件、模板目录、附件目录、运行时数据等每个关键目录和文件的具体作用,方便后续日常维护和二次开发。安企CMS 安装后的完整目录结构概览,带你了解每个目录和文件的用途。一、顶层目录结构 …

2026/7/6 3:40:09 阅读更多 →
LB200倒置显微镜在梅毒螺旋体体外培养观察中的解决方案

LB200倒置显微镜在梅毒螺旋体体外培养观察中的解决方案

LB200倒置显微镜在梅毒螺旋体体外培养观察中的解决方案 梅毒螺旋体体外培养:微观世界的艰难跋涉 梅毒螺旋体是一种难以在体外环境中生存和繁殖的特殊病原体。其体外培养面临着很高的技术挑战,需要精确模拟人体内的复杂环境。在这一过程中,对培…

2026/7/6 3:38:09 阅读更多 →
PCB布局3大常见误区解析:从BGA阴影效应到40mil间距的工程取舍

PCB布局3大常见误区解析:从BGA阴影效应到40mil间距的工程取舍

PCB布局3大常见误区解析:从BGA阴影效应到40mil间距的工程取舍在硬件工程师的日常工作中,PCB布局往往是最容易被低估却又最影响最终产品性能的环节。许多初学者在完成原理图设计后,常常迫不及待地将元器件"塞"进电路板,却…

2026/7/6 3:38:09 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻