You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现含.和*的模式匹配:DFS代码缓存未触发,求可触发的测试用例

可触发缓存的测试用例

你之前使用的测试用例不会触发缓存,是因为其递归路径中每个(i,j)坐标对只会被访问一次,没有重复查询的场景。要触发缓存命中,只需构造存在重叠递归路径的输入,示例如下:

示例1:重叠a*匹配场景

res = isMatch("aaab", "a*a*b")
print(res)

运行后你会看到多条from cache日志打印。

示例2:.*组合匹配场景

res = isMatch("aaaaa", ".*.*a")
print(res)

这个测试用例也会频繁触发缓存查询。


触发原理

当模式串中存在多个可匹配任意长度字符的*通配符组合时,不同的匹配决策(跳过当前*直接匹配后续规则,或用当前*多匹配一个字符再继续)最终会落到同一个(i,j)坐标对,此时已缓存的计算结果就会被直接调用。

内容的提问来源于stack exchange,提问作者Elimination

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:27:03