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

LeetCode Hot100 生成特殊数字的最少操作

给你一个下标从 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 位数字。

思路

        只要结尾是00,75,25,50还有只剩0和全删这几种答案,从尾记录最短的长度。

代码

class Solution {
public:int minimumOperations(string num) {unordered_map<char, int> hashtable;int cnt = 0;char ch;for(int i = num.size()-1;i >= 0; --i){ch = num[i];if((ch == '0' || ch == '5') && hashtable.find('0') != hashtable.end())return cnt-1;if((ch == '2' || ch == '7') && hashtable.find('5') != hashtable.end())return cnt-1;else{++hashtable[ch];++cnt;}}if(hashtable.find('0') == hashtable.end())return num.size();elsereturn num.size()-1;}
};

http://www.lryc.cn/news/407837.html

相关文章:

  • Spring MVC 应用分层
  • QT--进程
  • 凸优化笔记-基本概念
  • 1858. 数组查找及替换
  • 计算机视觉与面部识别:技术、应用与未来发展
  • 懒人精灵安卓版纯本地离线文字识别插件
  • 在线教育数仓项目(数据采集部分1)
  • 帕金森病(PD)诊断:三种基于语音的深度学习方法
  • 【资料分享】2024钉钉杯大数据挑战赛A题思路解析+代码演示
  • 【优质精选】12节大模型系列教学课程之二:RAG 原理与应用
  • vue3前端开发-小兔鲜项目-产品详情基础数据渲染
  • Docker入门指南:Linux系统下的完整安装步骤与常见问题解答
  • Netty实现数据上下行
  • 【React】事件绑定:深入解析高效处理用户交互的最佳实践
  • SpringCloud:使用OpenFeign优化前面的Nacos实现高效购物车商品信息处理
  • 计算机三级嵌入式笔记(二)——嵌入式处理器
  • 【GoLang】Golang 快速入门(第一篇)
  • Linux中的三类读写函数
  • MATLAB基础应用精讲-【数模应用】二元Probit回归分析
  • 找工作准备刷题Day10 回溯算法 (卡尔41期训练营 7.24)
  • 如何有效的进行小程序的优化
  • FPGA-ROM IP核的使用(2)
  • Manticore Search(es轻量级替代)
  • 测试开发面试题---计算机网络
  • Wonder3D 论文学习
  • 【MySQL进阶之路 | 高级篇】显式事务和隐式事务
  • Ruby、Python、Java 开发者必备:Codigger之软件项目体检
  • day05 Router、vuex、axios
  • yolov5-7在opencv里跑自己的onnx模型
  • JVM 11 的优化指南:如何进行JVM调优,JVM调优参数有哪些