LeetCode 1957. 删除字符使字符串变好缩略图

一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。

给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 。

请你返回删除后的字符串。题目数据保证答案总是 唯一的 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/delete-characters-to-make-fancy-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

LeetCode 1957. 删除字符使字符串变好插图
OpenCV步步精深-可心科创工作室

思路:比较当前字母和前一个字母是否相同,如果相同比较前一个字母出现的次数,然后根据条件拼接。

python3实现:

class Solution:
    def makeFancyString(self, s: str) -> str:
        # 只需要找到前一个元素的计数,等于3就不添加进列表中了

        result = ""
        tmp = s[0]
        count = 1
        result += tmp
        for elem in s[1:]:
            # print("此时字母是:", elem, "前一个字母是:", tmp)
            if elem == tmp:
                count += 1
                if count <= 2:
                    result += elem
                else:
                    count = 3
            else:
                result += elem
                tmp = elem
                count = 1
        # print("result:", result)
        return result
LeetCode 1957. 删除字符使字符串变好插图1
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注