1957 年。删除字符来制作花哨的字符串
难度:简单
主题:字符串
花哨字符串是一个三个连续字符不相等的字符串。
给定一个字符串 s,从 s 中删除最小个可能的字符数,使其变得花哨。
返回删除后的最终字符串。可以证明答案总是唯一.
示例1:
- 输入: s = "leeetcode"
- 输出:“leetcode”
- 说明: 从第一组“e”中删除一个“e”以创建“leetcode”。 三个连续字符都不相等,因此返回“leetcode”。
示例2:
- 输入: s = "aaabaaaa"
- 输出:“aabaa”
- 说明: 从第一组“a”中删除一个“a”以创建“aabaaaa”。 从第二组“a”中删除两个“a”以创建“aabaa”。 三个连续字符都不相等,因此返回“aabaa”。
示例 3:
- 输入: s = "aab"
- 输出:“aab”
- 解释: 三个连续字符都不相等,因此返回“aab”。
约束:
- 1 5
- s 仅由小写英文字母组成。
提示:
- 如果三个或更多连续字符相等,删除字符的最佳方法是什么?
- 如果三个或更多连续字符相等,则保留其中两个并删除其余的。
解决方案:
我们需要确保最终字符串中没有三个连续字符相同。我们将迭代输入字符串并通过跟踪前两个字符来构建一个新的“奇特”字符串。如果第三个连续字符与最后两个字符匹配,我们将跳过它。否则,我们将其添加到输出中。
让我们用 PHP 实现这个解决方案:1957。删除字符制作花式字符串
<?php /** * @param String $s * @return String */ function makeFancyString($s) { ... ... ... /** * go to ./solution.php */ } // Example usage: echo makeFancyString("leeetcode"); // Output: "leetcode" echo "\n"; echo makeFancyString("aaabaaaa"); // Output: "aabaa" echo "\n"; echo makeFancyString("aab"); // Output: "aab" ?>
解释:
-
初始化变量:
- $result:这将存储最终的“奇特”字符串。
-
迭代字符串:
- 对于每个字符,检查它是否与结果中的最后两个字符形成一个三重奏。
- 如果是,请跳过将其添加到 $result。
- 如果没有,请将其添加到 $result。
-
返回结果:
- $result 字符串现在不包含三个连续的相同字符。
复杂性分析
- 时间复杂度:O(n),其中n是输入字符串的长度,因为我们每个字符处理一次。
- 空间复杂度:O(n),用于存储输出字符串。
该方案高效满足约束条件,并确保最终字符串不存在三个连续相同的字符。
联系链接
如果您发现本系列有帮助,请考虑在 GitHub 上给 存储库 一个星号或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!
如果您想要更多类似的有用内容,请随时关注我:
- 领英
- GitHub
以上是删除字符以制作精美的字符串的详细内容。更多信息请关注PHP中文网其他相关文章!

本文比较了PHP和ASP.NET,重点是它们对大规模Web应用程序,性能差异和安全功能的适用性。两者对于大型项目都是可行的,但是PHP是开源和无关的,而ASP.NET,

本文讨论了PHP数据对象(PDO),这是PHP中数据库访问的扩展名。它通过准备好的语句及其对MySQLI的好处,包括数据库抽象和更好的错误处理,强调了PDO在增强安全性方面的作用。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Dreamweaver Mac版
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。