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

    https://www.nowcoder.com/practice/7f26bfeccfa44a17b6b269621304dd4a?tpId=85&&tqId=29890&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking

    给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。 
    */ 
    /* 
    解题思路:例如数字51643,需要删除3位数而使剩下的数字组合最大,此时需要从头开始两个数字比较大小, 
    如果当前数字比其下一位小,则删除当前数字,此时变为5643,继续从头开始遍历,5比6小,则删除5,变为643 
    继续从头遍历,当走到4的位置发现4比3大,而且4已经是倒数第二位数字,则删除最后一位数字,就得到了64 
    关键点:1.每次j都需要从头遍历 
    2.需要考虑最后两个数字比较时,如果倒数第二位比最后一位小,需要删除最后一个数字。 
    */

     1 #include<iostream>
     2 #include<cstdio>
     3 #include <cctype>
     4 #include<algorithm>
     5 #include<cstring>
     6 #include<cmath>
     7 #include<string>
     8 #include<cmath>
     9 #include<set>
    10 #include<vector>
    11 #include<stack>
    12 #include<queue>
    13 #include<map>
    14 using namespace std;
    15 #define ll long long
    16 #define mem(a,x) memset(a,x,sizeof(a))
    17 #define se second
    18 #define fi first
    19 const int INF= 0x3f3f3f3f;
    20 const int N=1e5+5;
    21 
    22 string s;
    23 
    24 int main()
    25 {
    26     int k;
    27     cin>>s>>k;
    28     int i;
    29     while(k--)
    30     {
    31         int len=s.length();
    32         for(i=0;i<len-1;i++)
    33         {
    34             if(s[i]<s[i+1]) {
    35                 s.erase(s.begin()+i); //
    36                 break;
    37             }
    38         }
    39         if(i==len-1) 
    40             s.erase(s.end()-1); //这种操作 
    41         i=0;
    42     }
    43     
    44     cout<<s;
    45 }
  • 相关阅读:
    第四章 Zookeeper技术内幕
    容器--TreeMap
    算法--红黑树实现介绍(二)
    算法---红黑树实现介绍(一)
    容器--WeakHashMap
    基础-WeakReference
    容器--IdentityHashMap
    容器--EnumMap
    容器--HashMap
    容器--Map和AbstractMap
  • 原文地址:https://www.cnblogs.com/thunder-110/p/9345666.html
Copyright © 2011-2022 走看看