給定一個十進位制的正整數number,選擇從裡面去掉一部分數字,希望保留下來的數字組成的正整數最大。
阿新 • • 發佈:2018-12-07
題目描述
給定一個十進位制的正整數number,選擇從裡面去掉一部分數字,希望保留下來的數字組成的正整數最大。
輸入描述:
輸入為兩行內容,第一行是正整數number,1 ≤ length(number) ≤ 50000。第二行是希望去掉的數字數量cnt 1 ≤ cnt < length(number)。
輸出描述:
輸出保留下來的結果。
示例1
輸入
325 1
輸出
35
//思路:複雜度O(n),從左至右,刪除小於下一位的數,最後不夠刪除結尾數
#include<iostream> #include<vector> using namespace std; int main() { string number; int count; while(cin >> number >> count) { while(count--) { int len = number.length(); int i = 0; for(;i<len-1;i++) { if(number[i]<number[i+1]) { number.erase(number.begin()+i); break; } } if(i==len-1) number.erase(number.end()-1); } cout << number << endl; } return 0; }