华为OD机试统一考试D卷C卷 - 找最小数

题目描述

给一个正整数NUM1,计算出新正整数NUM2,NUM2为NUM1中移除N位数字后的结果,需要使得NUM2的值最小。

输入描述

1.输入的第一行为一个字符串,字符串由0-9字符组成,记录正整数NUM1,NUM1长度小于32。
2.输入的第二行为需要移除的数字的个数,小于NUM1长度。

输出描述

输出一个数字字符串,记录最小值NUM2。

用例

输入

2615371 
4 

输出

131 

解题思路

原题:********************************************************

维护一个单调递增的栈来实现移除数字

  1. 初始化一个空栈 stack,用于存储需要保留的数字。
  2. 遍历输入的正整数 NUM1 中的每个字符。
  3. 对于当前字符,检查栈顶元素是否大于当前字符,如果是,则出栈并减少需要移除的数字个数。这样可以确保移除的数字使得新正整数 NUM2 的值最小。
  4. 将当前字符入栈。
  5. 遍历完成后,如果仍有需要移除的数字个数,从栈顶开始移除剩余的数字。
  6. 将栈中的字符连接成一个字符串,去除前导零,输出结果。如果结果为空,则输出 "0"。

java

import java.util.Scanner;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取输

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机试E卷D卷刷题日记 文章被收录于专栏

机试刷题记录

全部评论
mk vector<int> stack;</int>
点赞 回复 分享
发布于 2024-09-19 20:51 四川

相关推荐

浪子陪都:简历最优秀的地方放到了后面,国奖,校级奖学金这些是最亮眼的。说明你跟同级别的学生不一样。 建议台灯这个,PCB布局布线这个词汇不专业,业内是PCB Layout,第二,单片机的板子一般不用考虑SI,PI 都是低速信号,只要遵循3W原则就好了。 单片机的项目太low了,技能这块,你要看一下BOSS直聘的招聘要求,按照别人的要求写,一些关键词可以增加你简历被检索到的概率。 主修课程不用写,这个没有人去关注的。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务