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

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;}
};

结果

在这里插入图片描述

相关文章:

  • vue页面实现table动态拆分列功能
  • MyBatis:简化数据库操作的持久层框架
  • 什么是endpoints?
  • 江科大TIM定时器hal库实现
  • Python训练Day30
  • 用python实现汉字转拼音工具
  • shell脚本之函数详细解释及运用
  • 车载诊断架构 --- LIN 节点 ECU 故障设计原则
  • git工具使用
  • 第22天-Python ttkbootstrap 界面美化指南
  • Vue Router动态路由与导航守卫实战
  • Captiks动捕与步态分析步态分析系统MOVIT:16μs 无线同步 + 快速校准,破解传统光电困局
  • 【攻防实战】MacOS系统上线Cobalt Strike
  • VoiceFixer语音修复介绍与使用
  • 环境搭建
  • 第十节第四部分:常见API:秒杀案例、Calendar(技术已过时,了解即可)
  • redisson-spring-boot-starter 版本选择
  • 【Oracle 专栏】清理用户及表空间
  • 现代计算机图形学Games101入门笔记(二十一)
  • Vue3 中 Route 与 Router 的区别
  • 长沙网站建设哪家公司好/营销的方法手段有哪些
  • 有做公司网站/新开传奇网站
  • 购买的网站怎么看网站空间大小/关键词搜索工具有哪些
  • 建站网站平台/怎么做网络营销推广啊
  • 店铺销售系统软件哪个好/网站标题优化排名
  • 国外网站为啥速度慢/怎么接广告赚钱