力扣 --2712. 使所有字符相等的最小成本

思路

有两个操作,全部将左边的刷成一个值,或者将右边的全部刷成一个值,得到的启发是一定需要从两端进行操作,可以模拟一下例子2:

c 复制代码
"010101" -> "110101" 操作1次 -> "110100" 操作1次 -> "000100" 操作2次
最后变为"111111" 操作5次
总计9次

也就是我们每一次都比较左右两端哪一个操作次数少,那么我们就操作他,全部刷为一个值,最后全部判断一遍就得到了最后的结果。

python 复制代码
class Solution:
    def minimumCost(self, s: str) -> int:
        n = len(s)
        i = 0
        j = n - 1
        res = 0
        while i < j:
            while i < j and s[i] == s[i + 1]:
                i += 1
            if i >= j: break
            while i < j and s[j] == s[j - 1]:
                j -= 1
            if i + 1 < n - j:
                res += i + 1
                i += 1
            else:
                res += n - j
                j -= 1
        return res
相关推荐
怀旧,9 分钟前
【C++】1. C++基础知识
开发语言·c++·算法
Gerry_Liang24 分钟前
LeetCode热题100——155. 最小栈
算法·leetcode·职场和发展
TechCampus39 分钟前
小红书面试中我这样解释 KMP,面试官点头了
算法
Youndry41 分钟前
验证二叉搜索树
算法
Spider_Man43 分钟前
从 "字符拼图" 到 "文字魔术":动态规划玩转字符串变形术
javascript·算法·leetcode
LiuYiCheng1234561 小时前
Python游戏开发:Pygame全面指南与实战
python·pygame
玄妙尽在颠倒间1 小时前
雪花算法:从 64 位到 128 位 —— 超大规模分布式 ID 生成器的设计与实现
后端·算法
魔障阿Q1 小时前
华为310P3模型转换及python推理
人工智能·python·深度学习·yolo·计算机视觉·华为
Star在努力1 小时前
15-C语言:第15~16天笔记
c语言·笔记·算法