题目

一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。
给你一个字符串 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 <= s.length <= 10^5
s 只包含小写英文字母。
来源:力扣(LeetCode)

解题思路

  这个题可以直接模拟来进行,但是会比较麻烦,处理删除将会导致index发生变化,从而可能需要预留空白进行逻辑删除或者考虑删除后从新组合的情况,因此,我们从另外一个角度来考虑问题,即重新来组成一个符合条件的字符串用给定顺序的元素。

class Solution:def makeFancyString(self, s: str) -> str:if len(s)<3:return stemp=s[0]+s[1]for i in range(2,len(s)):if s[i]!=temp[-1] or s[i]!=temp[-2]: #如果当前元素和它前面的两个元素中全部相同则不需要添加入重新构成的字符串。temp+=s[i]return temp

LeetCode简单题之删除字符使字符串变好相关推荐

  1. 5193. 删除字符使字符串变好

    5193. 删除字符使字符串变好 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请你返回删除后 ...

  2. Leetcode周赛5193. 删除字符使字符串变好

    题目描述 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请你返回删除后的字符串.题目数据保证答 ...

  3. LeetCode 1957. 删除字符使字符串变好

    文章目录 1. 题目 2. 解题 1. 题目 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请 ...

  4. LeetCode简单题之连续字符

    题目 给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度. 请你返回字符串的能量. 示例 1: 输入:s = "leetcode" 输出:2 解释 ...

  5. LeetCode简单题之删除一个元素使数组严格递增

    题目 给你一个下标从 0 开始的整数数组 nums ,如果 恰好 删除 一个 元素后,数组 严格递增 ,那么请你返回 true ,否则返回 false .如果数组本身已经是严格递增的,请你也返回 tr ...

  6. LeetCode简单题之检查两个字符串数组是否相等

    题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...

  7. LeetCode简单题之删除某些元素后的数组均值

    题目 给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值. 与 标准答案 误差在 10^-5 的结果都被视为正确结果. 示例 1: 输入:arr = [1, ...

  8. LeetCode简单题之删除排序链表中的重复元素

    题目 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 .返回 已排序的链表 . 示例 1: 输入:head = [1,1,2] 输出:[1,2] 示例 2: 输入:h ...

  9. LeetCode简单题之最少操作使数组递增

    题目 给你一个整数数组 nums (下标从 0 开始).每一次操作中,你可以选择数组中一个元素,并将它增加 1 . 比方说,如果 nums = [1,2,3] ,你可以选择增加 nums[1] 得到 ...

最新文章

  1. Android 源码编译相关
  2. python使用matplotlib可视化线图(line plot)、自定义可视化图像的四个边框的色彩、可以分别设置矩形每一条边的色彩(change the axis color)
  3. JAVA层HIDL服务的获取原理-Android10.0 HwBinder通信原理(九)
  4. git branch set-upstream master 分支名/master
  5. 解决Jenkins邮件配置问题
  6. 腾讯企业IT部安全运营中心总监蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航...
  7. 虚拟机vmnet8每次都要先禁用再启用_【零成本 amp; 超详细】使用Win10自带的Hyper-V管理工具搭建虚拟机...
  8. 太努力工作的年轻人,都有病吧!?
  9. 未来计算机的展望800字,展望作文800字【精选】
  10. 【图解漏洞】图解跨站请求伪造(CSRF)原理
  11. python课堂笔记之django-day02(7)
  12. 清理net use的BAT
  13. python中文文本分析_中文文本处理
  14. Velocity模板基本常用语法
  15. mysql innodb count 优化_MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
  16. Mac上制作Mac os10.12.6启动盘的多次尝试
  17. 三星Galaxy S20:将侧面按钮更改为电源按钮
  18. java中GUI中显示当前时间_【java编程】返回当地时间Clock到GUI面板Panel上
  19. 【python量化交易学习】pandas获取mysql数据,使用pyecharts画K线图,ma移动均线。
  20. 黏菌算法(Slime Mould Algorithm,SMA)

热门文章

  1. 快起床刷题去,别人把你offer拿走啦
  2. Chrome不支持showModalDialog的解决方案
  3. 如何利用python的newspaper包快速爬取网页数据
  4. 关于python 中的__future__模块
  5. CodeGen融合核心扩展定制文件
  6. Mybatis获取参数值的方式
  7. 2021年大数据Flink(二十):案例二 基于数量的滚动和滑动窗口
  8. idea 搭建spring boot 项目
  9. Android开发遇到eclipse运行程序时报timeout
  10. android studio 通过界面快速查看md5