• 网易2018——删除数字


    删除数字(C++)

    时间限制:C/C++语言1000MS;其他语言3000MS

    内存限制:C/C++语言65536KB;其他语言589824KB

    题目描述:
    给出一个字符串A,表示一个N位正整数,删除其中k位数字,使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。找到删除k个数字之后的最小正整数。N<=240,K<=N。

    输入:

    输入包含多组测试数据,每组数据为一行,每一行数据包含两个值,第一个值为A,第二个值为k,两个值中间有一个空格。
    输出:
    输出计算出的最小正整数
    样例输入
    987132 4

    1000230 5

    样例输出
    12

    解题思路:

    误区:

      并不是删除最大的数字,而是按高位依次删除大的数

     1 #include <iostream>
     2 #include <sstream>
     3 #include <string>
     4 #include <vector>
     5 using namespace std;
     6 
     7 
     8 int main()
     9 {
    10     int A;
    11     int k;
    12     string str;
    13     vector<int>res;
    14     stringstream ss;
    15     for(int t = 0;t<1;++t)//输入数据大小
    16     {
    17         cin >> A >> k;        
    18         ss << A;
    19         ss >> str;    //转换为字符串更方便
    20         if (k >= str.size())//删除的位数超过输入数字的位数
    21         {
    22             A = 0;
    23             res.push_back(A);
    24             continue;
    25         }        
    26         while (k--)
    27         {
    28             int flag = 1;//数组是否为递增标记
    29             for (int i = 1; i < str.size(); ++i)
    30                 if (str[i-1] > str[i])//删除较大的数字
    31                 {
    32                     str.erase(i-1,1);
    33                     flag = 0;
    34                     break;
    35                 }
    36             if (flag)//剩下的为递增,直接删除后面的数字就行
    37             {
    38                 str.assign(str, 0, str.size() - k-1);
    39                 break;
    40             }
    41         }
    42         ss.str("");
    43         ss.clear();
    44         ss << str;
    45         ss >> A;//将字符转换为数字
    46         res.push_back(A);
    47         ss.str("");
    48         ss.clear();
    49         
    50     }
    51     for (auto a : res)
    52         cout << a << endl;
    53     system("pause");
    54     return 0;
    55 }
  • 相关阅读:
    C#开发微信公众平台-就这么简单(附Demo)
    Newtonsoft.Json高级用法
    C#获取文件的MD5码
    C#动态执行代码
    c#插件式开发
    利用反射执行代码
    yield关键字用法与解析(C# 参考)
    HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching
    GZip压缩与解压缩
    Asp.Net 请求处理机制
  • 原文地址:https://www.cnblogs.com/zzw1024/p/10639782.html
Copyright © 2020-2023  润新知