Python leetcode 2844 生成特殊字的最少操作,力扣练习,贪心解法代码实践

今天又来练习力扣了,又是向大佬学习的一天,leetcode 2844 生成特殊字的最少操作

1.题目

给你一个下标从 0 开始的字符串 num ,表示一个非负整数。

在一次操作中,您可以选择 num 的任意一位数字并将其删除。请注意,如果你删除 num 中的所有数字,则 num 变为 0

返回最少需要多少次操作可以使 num 变成特殊数字。

如果整数 x 能被 25 整除,则该整数 x 被认为是特殊数字。

示例 1:

输入:num = "2245047"
输出:2
解释:删除数字 num[5] 和 num[6] ,得到数字 "22450" ,可以被 25 整除。
可以证明要使数字变成特殊数字,最少需要删除 2 位数字。

示例 2:

输入:num = "2908305"
输出:3
解释:删除 num[3]、num[4] 和 num[6] ,得到数字 "2900" ,可以被 25 整除。
可以证明要使数字变成特殊数字,最少需要删除 3 位数字。

示例 3:

输入:num = "10"
输出:1
解释:删除 num[0] ,得到数字 "0" ,可以被 25 整除。
可以证明要使数字变成特殊数字,最少需要删除 1 位数字。

提示

  • 1 <= num.length <= 100
  • num 仅由数字 '0' 到 '9' 组成
  • num 不含任何前导零

2.题解思路

我用的记忆化搜索,但是灵神的思路更为巧妙,贪心解法。 

一个数能被 252525 整除,有如下五种情况:

这个数是 000。
这个数的末尾是 000000。
这个数的末尾是 252525。
这个数的末尾是 505050。
这个数的末尾是 757575。

class Solution:
    def minimumOperations(self, num: str) -> int:
        n = len(num)
        def func(tail):
            i = num.rfind(tail[1])
            if i < 0:
                return n
            i = num.rfind(tail[0], 0, i)
            if i < 0:
                return n
            return n - i - 2
        return min(n - ('0' in num), func('00'), func('25'), func('50'), func('75'))

时间复杂度O(n)

空间复杂度O(1)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/545074.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

顶切,半顶切是什么意思?

齿轮加工及刀具中有一些特定名词或者叫法&#xff0c;不熟悉的小伙伴可能最开始会有一些困惑&#xff0c;这不&#xff0c;最近有小伙伴问了一个问题&#xff1a;顶切是说齿顶的倒角吗&#xff1f; 今天就给大家说说顶切和半顶切。 一、顶切 Topping 从字面上可以看到可以想到…

Python学习笔记20 - 模块

什么叫模块 自定义模块 Python中的包 Python中常用的内置模块 第三方模块的安装与使用

Python7种运算符及运算符优先级

🥇作者简介:CSDN内容合伙人、新星计划第三季Python赛道Top1 🔥本文已收录于Python系列专栏: 零基础学Python 💬订阅专栏后可私信博主进入Python学习交流群,进群可领取Python视频教程以及Python相关电子书合集 私信未回可以加V:hacker0327 备注零基础学Python 订阅专…

CloudFlare R2 搭建个人图床教程

为什么搭建自己的图床 平时写博客都是使用 md 格式&#xff0c;要在多个平台发布时&#xff0c;图片需要有外链后续如果博客迁移时&#xff0c;国内的博客网站&#xff0c;比如掘金&#xff0c;简书&#xff0c;语雀等都做了防盗链&#xff0c;图片不好迁移 为什么是CloudFla…

AIX7.2上安装mysql-8.0.17

一、安装 提示&#xff1a;不要采用源码编译方式&#xff0c;根本编译不过去&#xff0c;各种bug&#xff0c;需要针对AIX系统添加各种patch才可以&#xff0c;因此最简单的方式就是直接使用已经编译好的rpm包&#xff0c;如果没有rpm直接放弃就可以了。 1.1. 下载软件依赖包…

一文学会 Jsonp (JSON_with_Padding) 跨域请求

文章目录 流程缺点名称由来demoJSONP安全性问题CSRF攻击5XSS漏洞服务器被黑&#xff0c;返回一串恶意执行的代码 封装工具函数真实案例&#xff1a;获取淘宝搜索关键字推荐 流程 script 标签 src 属性发起的请求不受同源策略的限制&#xff0c;并且 script 标签默认类型是text…

Leetcode刷题(位运算)

一、 476. 数字的补数 根据题意写即可 代码 class Solution:def findComplement(self, num: int) -> int:l list(bin(num)[2:])for i in range(len(l)):if l[i]0:l[i]1else:l[i]0return int("0b""".join(l),2)位运算 class Solution:def findComple…

Android Surface的跨进程绘制,如何绘制xml布局给Surface,全网独一份

工作中遇到了这样一个需求 需求&#xff1a;需要将一个自定义View或者自定义布局通过跨进程方式传递给第二个应用来展示&#xff0c;第一个应用负责布局的渲染&#xff0c;第二个应用不需要关心第一个应用的业务和实现&#xff0c;仅提供SurfaceView占位及展示 方案&#xff…

AliyunCTF 2024 - BadApple

文章目录 前言环境搭建漏洞分析漏洞利用参考 前言 本文首发于看雪论坛 https://bbs.kanxue.com/thread-281291.htm 依稀记得那晚被阿里CTF支配的恐惧&#xff0c;今年的阿里CTF笔者就做了一道签到PWN题&#xff0c;当时也是下定决心要学习 jsc pwn 然后复现这道 BadApple 题目…

30元腾讯云服务器搭建幻兽帕鲁Palworld多人联机游戏,畅玩

幻兽帕鲁太火了&#xff0c;官方palworld服务器不稳定&#xff1f;不如自建服务器&#xff0c;基于腾讯云幻兽帕鲁服务器成本32元全自动部署幻兽帕鲁服务器&#xff0c;超简单有手就行&#xff0c;全程自动化一键部署10秒钟即可搞定&#xff0c;无需玩家手动部署幻兽帕鲁游戏程…

Python基础整理(一万三千字)(一)

目录 一、Python解释器 解释器的作用&#xff1a; 下载Python解释器&#xff1a; 安装Python解释器&#xff1a; 二、注释 三、变量 定义变量&#xff1a; 标识符&#xff1a; 命名习惯&#xff1a; 变量使用&#xff1a; 变量的数据类型&#xff1a; 四、输出 格式化输出 …

聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(二十六): 聚酰亚胺PI材料为什么难于粘接

聚酰亚胺PI材料为什么难于粘接 聚酰亚胺&#xff08;PI&#xff09;材料难以粘接主要是由于其特殊的化学结构和物理性质&#xff1a; 化学稳定性&#xff1a;聚酰亚胺PI材料具有出色的化学稳定性&#xff0c;这使其对大多数化学溶剂和酸碱溶液都表现出良好的抵抗性&#xff0c;…

23电赛D题 CORDIC算法实践——Chisel计算对数函数

一、介绍 在本专栏之前的文章中:用Chisel快速搭建FFT流水线电路Chisel实践 —— 短时傅里叶变换模块的实现与测试 已经介绍到了如何使用Chisel开发FFT运算模块和STFT模块&#xff0c;此篇文章将详细介绍如何使用Chisel进行对数运算模块的开发。 如何使用硬件语言实现对数运算&…

得帆用户有福了!全新社区论坛携手AI助手华丽上线,积分好礼等你拿!

盼望着&#xff0c;盼望着&#xff0c;春天的脚步近了&#xff0c;得帆云社区迎来全新升级&#xff0c;社区论坛携手AI知识库助手上线了&#xff01; 得帆云官方社区论坛&#xff1a; https://edu.definesys.cn/community/community-forum 您也可以点击本文末尾左下方“阅读…

.rdl.data是什麼文件

https://learn.microsoft.com/zh-cn/sql/reporting-services/tools/reporting-services-in-sql-server-data-tools-ssdt?viewsql-server-ver16&redirectedfromMSDN

如何在Odoo 17库存中通过批次号和序列号追踪产品

在Odoo 17库存管理中&#xff0c;通过批次号和序列号追踪产品是一种确保产品从生产到销售全程可追溯的重要方式。在产品打包时或生产过程中会分配这些编号。批次号是指应用于具有相似属性的一组产品的一系列数字或代码&#xff0c;而序列号则是分配给特定单一物品的独特编号。O…

MATLAB5:数据和函数的可视化

文章目录 一、实验目的二、实验内容三、仿真结果四、实践中遇到的问题及解决方法 一、实验目的 1. 掌握基本的二维绘图中曲线图的绘制方法。   2. 掌握三维绘图中曲面图的绘制方法。   3. 掌握三维绘图中网线图的绘制方法。   4. 了解三维表面图的绘制方法。   5. 了解…

【Java框架】Mybatis教程(一)——环境搭建及基本CRUD操作

目录 持久化与ORMORM&#xff08;Object Relational Mapping&#xff09;ORM解决方案包含下面四个部分 MyBatis简介特点MyBatis框架优缺点优点缺点 搭建MyBatis开发环境步骤1. 创建Maven工程&#xff0c;导入MyBatis依赖的组件2. 编写MyBatis核心配置文件(mybatis-config.xml)示…

【C 数据结构】静态链表

文章目录 【 1. 基本原理 】1.1 静态链表中的节点1.2 备用链表 【 2. 静态链表的创建 】2.1 实例1 - 创建静态链表&#xff0c;指定值2.2 实例2 - 创建静态链表&#xff0c;默认值 【 3. 静态链表 添加元素 】【 4. 静态链表 删除元素 】【 5. 静态链表 查找元素 】【 6. 静态链…

腾讯EdgeOne产品测评体验—基于EO新特性与传统CDN的对比以凸显EO绝对优势【以导航站为例】

精益求精&#xff0c;卓越非凡。 ——《论语集注》 EdgeOne 作为腾讯云下一代的 CDN &#xff0c;提供域名解析、动静态智能加速、TCP/UDP 四层加速、DDoS/CC/Web/Bot 防护、边缘函数计算等一体化服务&#xff0c;也支持用户按业务需求&#xff0c;配置自定义复杂访问控制规…