• Problem1删数问题解题报告


    题目描述

        给定一正整数n(n的位数小于240),现要删除数n中的s个数码,使其得到的新数最小,求这个最小数。

    输入

        输入有两行,第一行为整数n,第二行即为s

    输出

    输出一行,即最小的那个数

    测试样例1

    输入

    123456

    1

    输出

    12345

    测试样例2

    输入

    234516

    3

    输出

    216

    解题思路

    首先考虑s=1时的情况,很容易知道如果只删一个数,那么若各位数字递增则删除最后一个数,否则删除第一个递减区间的首字符,这样删除便可以得到最小的数。而对于s>1时,我们只需要重复这种操作s次,得到的操作就是所求的最小数。

    程序代码

    using System;
    using System.Text;

    namespace tanxin
    {
    class delnum
    {
    static void Main(string[] args)
    {
    string n;
    int s;
    n
    = Console.ReadLine();
    s
    = int.Parse(Console.ReadLine());
    Console.WriteLine(GetMinNum(n, s).ToString());
    }
    public static StringBuilder GetMinNum(string n, int s)
    {
    bool flag;
    StringBuilder str
    = new StringBuilder(n);
    for (int i = s; i > 0; i--)
    {
    flag
    = false;
    for (int j = 0; j < str.Length - 1; j++)
    {
    if (str[j] > str[j + 1])
    {
    str.Remove(j,
    1);
    flag
    = true;
    break;
    }
    }
    if (!flag)
    {
    str.Remove(str.Length
    - i,i);
    break;
    }
    }
    return str;
    }
    }
    }
  • 相关阅读:
    vue环境搭建
    'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    文件上传
    json字符串解析为java对象
    自定义登录控制类Demo
    分页后台代码Demo
    主键回显
    angularjs变量的三种表示方式
    js往后台传参的方式
    同一路径下jsp能访问到,html不能访问到
  • 原文地址:https://www.cnblogs.com/Crakme/p/1978237.html
Copyright © 2020-2023  润新知