删数问题(一个数删去几个位上的数后最小)
作者:互联网
https://www.luogu.com.cn/problem/P1106
- 将字符串中出现递减的数删去(s[i]>s[i+1])此时删去i位置的那个比较大的数
- 使用erase函数快
- 循环操作n次结束
#include <bits/stdc++.h>
using namespace std;
string s;
int n, min_idx;
char min_first;
int main()
{
cin >> s;
int len = s.length();
scanf("%d", &n);
while (n--)
{
for (int i = 0; i < len; i++)
{
if (s[i] > s[i + 1])
{
s.erase(i, 1);
len--;
break;
}
}
}
int i = 0, l = 0;
while (s[i] == '0' && l < len - 1)
{
i++, l++;
}
for (int i = l; i < s.length(); i++)
{
printf("%c", s[i]);
}
}
标签:min,int,len,位上,++,删数,erase,删去,数后 来源: https://www.cnblogs.com/Wang-Xianyi/p/16536298.html