leetcode算法题--生成特殊数字的最少操作

原题链接:https://leetcode.cn/problems/minimum-operations-to-make-a-special-number/description/

感觉还是比较难想到的。。

go 复制代码
func minimumOperations(num string) int {
    res := len(num)
    if strings.Contains(num, "0") {
        res-- 
    }
    f := func(tail string) {
        i := strings.LastIndexByte(num, tail[1]) 
        if i < 0 {
            return
        }
        i = strings.LastIndexByte(num[:i], tail[0])
        if i < 0 {
            return
        }
        res = min(res, len(num)-i-2)
    }
    f("00")
    f("25")
    f("50")
    f("75")
    return res
}

func min(a, b int) int {
    if a < b {
        return a
    }
    return b
}
相关推荐
web_Hsir2 小时前
vue3.2 前端动态分页算法
前端·算法
地平线开发者4 小时前
征程 6M 部署 Omnidet 感知模型
算法·自动驾驶
秋说5 小时前
【PTA数据结构 | C语言版】线性表循环右移
c语言·数据结构·算法
浩瀚星辰20245 小时前
图论基础算法:DFS、BFS、并查集与拓扑排序的Java实现
java·算法·深度优先·图论
古希腊被code拿捏的神6 小时前
【Flutter】面试记录
flutter·面试·职场和发展
JiaJZhong7 小时前
力扣.最长回文子串(c++)
java·c++·leetcode
oioihoii7 小时前
C++随机打乱函数:简化源码与原理深度剖析
开发语言·c++·算法
不知名。。。。。。。。8 小时前
分治算法---快排
算法
minji...8 小时前
数据结构 算法复杂度(1)
c语言·开发语言·数据结构·算法
凌肖战8 小时前
力扣网编程150题:加油站(贪心解法)
算法·leetcode·职场和发展