当前位置: 首页 > backend >正文

leetcode2844. 生成特殊数字的最少操作-medium

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 solution

从后往前看看是否能形成 00 25 50 75 这四个数,第一次形成时对应最小次数

代码

class Solution {/** 能被 25 整除,则最后两位必须是 00 50 25 75* 从后往前找如果第一次找到这两位数即可*/
public:int minimumOperations(string num) {bool zero{}, five{};int n = num.size();for (int i = n - 1; i >= 0; i--) {if (num[i] == '0' || num[i] == '5') {if (zero)return n - i - 2;if (num[i] == '0') zero = true;else five = true;} else if (num[i] == '2' || num[i] == '7') {if (five)return n - i - 2;}}return n - zero;}
};

结果

在这里插入图片描述

http://www.xdnf.cn/news/7885.html

相关文章:

  • C语言中的弱符号 __attribute__((weak)) 的使用方法
  • C语言---内存函数
  • Axure通过下拉框选项改变,控制字段显隐藏
  • Rust 学习笔记:关于泛型的练习题
  • Switch最新 模拟器 Eden(伊甸)正式发布 替代Yuzu模拟器
  • C#面:Server.UrlEncode、HttpUtility.UrlDecode的区别
  • Python里字典的操作
  • C#语法篇 :基类子类转换,成员变化情况
  • 云蝠智能大模型呼叫动态情感共情能力上线!
  • SIGIR25-推荐论文整理
  • 面试相关的知识点
  • vue3 + vite 使用tailwindcss
  • 现代化SQLite的构建之旅——解析开源项目Limbo
  • 第17天-Pandas使用示例
  • 【SPIN】PROMELA 通道(Channels)(SPIN学习系列--8)
  • 【完整版】基于laravel开发的开源交易所源码|BTC交易所/ETH交易所/交易所/交易平台/撮合交易引擎
  • 机器学习-KNN算法
  • 为什么服务器突然变慢?从硬件到软件的排查方法
  • 论文阅读:Next-Generation Database Interfaces:A Survey of LLM-based Text-to-SQL
  • Flink架构概览,Flink DataStream API 的使用,FlinkCDC的使用
  • 手机充电协议
  • 目标检测135个前沿算法模型汇总(附源码)!
  • rocketmq优先级控制 + 并发度控制
  • 85本适合AI入门的人工智能书籍合集免费资源
  • 游戏引擎学习第301天:使用精灵边界进行排序
  • 数据湖和数据仓库的区别
  • 线程、线程池、异步
  • 人脸识别,使用 deepface + api + flask, 改写 + 调试
  • 【沉浸式求职学习day46】【华为5.7暑期机试题目讲解】
  • 广东省省考备考(第十六天5.21)—言语:语句排序题(听课后强化)