zoukankan      html  css  js  c++  java
  • 保留最大的数

    给定一个十进制的正整数number,选择从里面去掉一部分数字。略去。

    看完题目,这道题就是上次leetcode周赛的那一题,不过那道题目求的是最小值,这里求的是最大值。那道题的题解放上http://www.cnblogs.com/y119777/p/5882667.html ,上次是大于号,这次改成小于号就ok了。注意退化的情况,以及前导0.

     1 #include<bits/stdc++.h>
     2 #define pb push_back
     3 #define FOR(i, n) for (int i = 0; i < (int)n; ++i)
     4 #define dbg(x) cout << #x << " at line " << __LINE__ << " is: " << x << endl
     5 typedef long long ll;
     6 using namespace std;
     7 typedef pair<int, int> pii;
     8 const int maxn = 1e3 + 10;
     9     string work(string num, int k) {
    10           int n = num.size();
    11           if(k >= n) {
    12               return "0";
    13           }
    14           while(k) {
    15               int i = 0;
    16              bool f = 0;
    17              for (i = 0; i < num.size() - 1; i++) {
    18                  if(num[i] < num[i + 1]) {
    19                      f = 1;
    20                      num = num.erase(i, 1);
    21                      break;
    22                  }
    23              }
    24              if(!f) {
    25                  num = num.substr(0, num.size() - 1);
    26              }
    27              k--;
    28          }
    29          while(num.size() > 1 && num[0] == '0') num = num.substr(1);
    30          return num;
    31      }
    32 void solve() {
    33     string str; int k;
    34     cin >> str >> k;
    35     cout << work(str, k) << endl;
    36 }
    37 int main() {
    38     //freopen("test.in", "r", stdin);
    39     //freopen("test.out", "w", stdout);
    40     solve();
    41     return 0;
    42 }
  • 相关阅读:
    文件路径选择中的三态逻辑
    .net版本号
    使用MSBuild编译vs多个解决方案
    CEF截图
    使用SharpZIpLib写的压缩解压操作类
    软件试用期设置
    list转datatable
    excel 导入
    网站登录简单验证码
    UEditor编辑器
  • 原文地址:https://www.cnblogs.com/y119777/p/5893189.html
Copyright © 2011-2022 走看看