
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
给你两个字符串,要你回答第二个在第一个里第一次出现的位置,从 0 开始数。查不到就返回 -1。题目保证第二个串至少有一个字符。这种题一行代码就能完成:Java 有,C++ 和 Python 也各有现成的find。可这些现成的函数,跑起来不一定比手写的快。手写的版本,就是上篇和中篇讲的那套 KMP。这篇讲两件事:它快在哪里,以及同一套 KMP 还能解另一道看起来毫不相干的题。
两趟加起来:算 next 数组 O(m),匹配 O(n),整趟就是 O(n + m)。单看某一个位置,它可能要退好几次。可 m 个位置放在一起算,总共只有 O(m),摊到每个位置上,平均就是常数级。上篇里最直接的做法,O(n × m),到这儿就压下来了。原理讲完了。下一篇看题,两道能直接用上 KMP 的题。
给两个字符串 S1 和 S2,问 S1 里有没有 S2,有的话返回它出现的最左位置,没有就返回 -1。这个问题叫。最直接的做法,是把 S1 的每个位置都当成起点试一遍。拿 S1 = “ABCD”、S2 = “CD” 来说:从 0 位置开始,A 对 C 对不上,换 1 位置;B 对 C 还是对不上,换 2 位置;这次 C 对 C、D 对 D 都对上了,返回 2。要是 S2 是 “CDE”,整个 S1
面对记忆丢失问题,很多人想到的补救方案是:把旧会话的内容总结成摘要,再传递给下一个 Agent。这个思路直觉上很合理,但在代码工程场景下几乎是灾难性的。设想一下:你将 10 万行调试日志压缩成了 500 字的摘要,告诉接班工程师"上周修了个变量 bug"。他获得了什么?是一句话的描述。他丢失了什么?是完整的变量命名体系、版本依赖关系、调试路径,以及大量隐性约定。在软件工程的世界里,少一处依赖声明,
做 AI 应用开发,经常会遇到两个概念:Agent Skill 和 MCP(Model Context Protocol)。虽然都是让 AI 能调用工具,但它们根本不是一个维度的东西。简单来说:Skill是 Agent 内部的能力封装与编排,MCP 是工具能力的标准化接入协议。







