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

如何判断字符串中存在包含字符掩码所有字符的连续子串?

判断掩码字符是否满足目标字符串连续子串要求

给定仅由小写字母组成的目标单词,以及仅包含唯一小写字母的字符掩码,需要判断:是否存在目标字符串的某一段连续子串,同时满足以下两个条件:

  • 子串里的所有字符都属于掩码中的字符(掩码字符可任意排列、重复使用)
  • 掩码中的每一个字符,都至少在这个子串里出现过一次

测试用例及预期结果

$tests = [
    ['word' => 'example',     'mask' => 'lmp'],   // 结果:true(对应子串mpl)
    ['word' => 'goodness',    'mask' => 'dns'],   // 结果:false(找不到同时包含d、n、s的合规连续子串)
    ['word' => 'slippers',    'mask' => 'eip'],   // 结果:true(对应子串ippe)
    ['word' => 'slippers',    'mask' => 'ips'],   // 结果:false(找不到同时包含i、p、s的合规连续子串)
    ['word' => 'google',      'mask' => 'go'],    // 结果:true(对应子串goog)
    ['word' => 'food',        'mask' => 'go'],    // 结果:false(子串oo不含g)
    ['word' => 'bananas',     'mask' => 'ans'],   // 结果:true(对应子串ananas)
    ['word' => 'candle',      'mask' => 'ace'],   // 结果:false(找不到同时包含a、c、e的合规连续子串)
    ['word' => 'mississippi', 'mask' => 'i'],     // 结果:true(对应子串i)
    ['word' => 'executive',   'mask' => 'ecitx'], // 结果:false(找不到同时包含e、c、i、t、x的合规连续子串)
];

补充说明

Stack Overflow上有不少不同语言的类似问题,但它们的规则组合和本场景不同,且大多不是针对PHP环境的解决方案。

这个问题是对另一用户提出的一个有趣但不完整的问题的补充完善,原问题已被关闭、弃用并由Roomba删除。我自行补充了细节以明确任务范围,还新增了一组测试用例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:48:18