牛客网-保留最大的数

题目描述

给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。

输入描述:

输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 1000。第二行是希望去掉的数字数量cnt 1 ≤ cnt < length(number)。

输出描述:

输出保留下来的结果。
示例1

输入

325
1

输出

35
 1 #include<string>
 2 #include<iostream>
 3 using namespace std;
 4 int main(){
 5     string s;
 6     int len,i;
 7     while(cin>>s>>len){
 8         i=1;
 9         while(len--){
10             int slen=s.length();
11             for(i--;i<slen-1;i++)
12                 if(s[i]<s[i+1]){   //比较两个数,如果前面的小于后面的,则把前面的数删除
13                     s.erase(s.begin()+i); //删除以后指针指向删除的当前元素下一个位置,所以有了for循环里面的i--
14                     break;
15                 }
16             if(i==slen-1) s.erase(s.end()-1);//说明最后一个数为最小的数字,把最后一个数字去掉
17         }
18         cout<<s<<endl;
19     }
20 }
原文地址:https://www.cnblogs.com/rgly/p/7412425.html