牛客网-保留最大的数
题目描述
给定一个十进制的正整数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 }