新闻详情

新闻详情

首页 / 资讯中心 / 详情

Kimi LeetCode 3303. 第一个几乎相等子字符串的下标 C语言实现

发布时间:2026/10/27 17:44:22来源:尧图网络
Kimi    LeetCode 3303. 第一个几乎相等子字符串的下标 C语言实现
以下是 LeetCode 3303 的 C 语言实现使用 Z-FunctionZ 数组 算法c#include string.h// 计算 Z-Function 数组// z[i] 表示 s[i..n) 与 s[0..n) 的最长公共前缀长度static void zFunction(const char *s, int n, int *z) {int l 0, r 0;z[0] 0;for (int i 1; i n; i) {if (i r) {z[i] (r - i z[i - l]) ? r - i : z[i - l];} else {z[i] 0;}while (i z[i] n s[z[i]] s[i z[i]]) {z[i];}if (i z[i] r) {l i;r i z[i];}}}int minStartingIndex(char *s, char *pattern) {int n strlen(s);int m strlen(pattern);// 正向匹配pattern sint len1 m n;char *str1 (char *)malloc((len1 1) * sizeof(char));strcpy(str1, pattern);strcpy(str1 m, s);int *z1 (int *)malloc(len1 * sizeof(int));zFunction(str1, len1, z1);// 反向匹配reverse(pattern) reverse(s)int len2 m n;char *str2 (char *)malloc((len2 1) * sizeof(char));// 反转 patternfor (int i 0; i m; i) {str2[i] pattern[m - 1 - i];}// 反转 sfor (int i 0; i n; i) {str2[m i] s[n - 1 - i];}str2[len2] \0;int *z2 (int *)malloc(len2 * sizeof(int));zFunction(str2, len2, z2);int result -1;// 枚举每个可能的起始位置 ifor (int i 0; i n - m; i) {// z1[m i]从 s[i] 开始正向匹配 pattern 的最长前缀长度// z2[n - i]从 s[i] 末尾反向匹配 pattern 的最长后缀长度// 两者之和 m - 1 说明中间最多只有 1 个字符不匹配if (z1[m i] z2[n - i] m - 1) {result i;break;}}free(str1);free(z1);free(str2);free(z2);return result;}关键点要点 说明malloc free C 中需手动管理内存计算完 Z 数组后及时释放字符串拼接 用 strcpy 将 pattern 和 s 拼接到新分配的缓冲区反向构造 分别反转 pattern 和 s 后拼接避免多次调用 strrevz1[m i] z2[n - i] 正向前缀 反向后缀覆盖 m-1 个字符即汉明距离 ≤ 1复杂度- 时间复杂度O(n m)两次 Z-Function 均为线性遍历- 空间复杂度O(n m)两个拼接字符串和两个 Z 数组与 Java 版本的区别C 语言没有内置字符串反转和动态数组需要手动1. malloc 分配拼接字符串的内存2. 循环反转字符构造反向字符串3. 手动 free 释放所有动态分配的内存核心算法逻辑Z-Function 双数组匹配与 Java/其他语言完全一致。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/27 6:27:07

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/27 8:06:52

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/26 12:48:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/27 15:44:59

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/27 1:55:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/26 21:26:08

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉