2981。找到出现三次的最长特殊子串 I
难度:中等
主题:哈希表、字符串、二分查找、滑动窗口、计数
给你一个由小写英文字母组成的字符串 s。
如果字符串仅由单个字符组成,则称为特殊。例如,字符串“abc”并不特殊,而字符串“ddd”、“zz”和“f”则特殊。
返回s中出现至少三次的最长特殊子串的长度,如果没有特殊子串至少出现三次,则返回-1。
子字符串是字符串中连续的非空字符序列。
示例1:
示例2:
示例 3:
约束:
提示:
解决方案:
由于 s 的限制较小(长度最多为 50),我们可以使用强力方法。我们会:
让我们用 PHP 实现这个解决方案:2981。查找出现三次的最长特殊子串 I
<?php /** * @param String $s * @return Integer */ function maximumLength($s) { ... ... ... /** * go to ./solution.php */ } /** * Helper function to check if a substring is special * * @param $substring * @return bool */ function isSpecial($substring) { ... ... ... /** * go to ./solution.php */ } // Test cases echo maximumLength("aaaa") . "\n"; // Output: 2 echo maximumLength("abcdef") . "\n"; // Output: -1 echo maximumLength("abcabcabc") . "\n"; // Output: 1 ?>
考虑到约束条件,这种强力方法是可行的 (n )。
联系链接
如果您发现本系列有帮助,请考虑在 GitHub 上给 存储库 一个星号或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!
如果您想要更多类似的有用内容,请随时关注我:
以上是找到出现三次的最长特殊子串 I的详细内容。更多信息请关注PHP中文网其他相关文章!