【发布时间】:2022-07-22 15:16:20
【问题描述】:
给定一个仅由小写字母组成的 haystack 字符串(单个单词)和一个仅包含唯一小写字母的字符掩码,确定字符掩码中的所有字母是否在 haystack 字符串中的任何点连续出现。字符掩码中的字母可以按任何顺序使用,如有必要,可以多次使用以形成限定字符串。
测试字符串和注释的预期布尔结果:
$tests = [
['word' => 'example', 'mask' => 'lmp'], // true (mpl)
['word' => 'goodness', 'mask' => 'dns'], // false (dn, ss)
['word' => 'slippers', 'mask' => 'eip'], // true (ippe)
['word' => 'slippers', 'mask' => 'ips'], // false (s, ipp, s)
['word' => 'google', 'mask' => 'go'], // true (goog)
['word' => 'food', 'mask' => 'go'], // false (oo)
['word' => 'bananas', 'mask' => 'ans'], // true (ananas)
['word' => 'candle', 'mask' => 'ace'], // false (ca, e)
['word' => 'mississippi', 'mask' => 'i'], // true (i)
['word' => 'executive', 'mask' => 'ecitx'], // false (exec, ti, e)
];
我对优雅、高效和/或抽象的答案感兴趣,作为富有想象力的编程练习。玩得开心!
关于 Stack Overflow 的许多预先存在的问题涉及各种具有相似要求的语言,但它们没有相同的规则组合。在这种情况下,限定子字符串必须完全由掩码中的字符组成,并且掩码中的所有字符必须至少使用一次。
这个问题是另一个用户an interesting but incomplete question被Roomba关闭、放弃、删除后的抢救操作。
我随意添加了细节来澄清任务,限制范围,并填充了一个一组测试用例。
【问题讨论】:
标签: php string validation substring character