0
已解决
李牧之
新手光能
新手光能
#include<cstdio>
#include<string>
using namespace std;
int main(){
int x;
scanf("%d",&x);
for(int k=0;k<x;k++){
int n;
string s;
s.resize(200);
scanf("%s%d",&s[0],&n);
for(int i;i=0,n--;s.erase(i,1))
while (i<s.size()&&s[i]>=s[i+1])
++i;
while (s.size()>1&&s[0]=='0')
s.erase(0,1);
puts(s.c_str());
}
return 0;
}
大佬教教我!谢谢1
0
已采纳
张睿杰
初级天翼
初级天翼
while(t--)
{
string n;
int m;
cin>>n>>m;
while(m>0)
{
for(int i=0;i<n.length();i++)
{
if(i==n.length()-1||n[i]<n[i+1])
{
n=n.erase(i,1);
m--;
break;
}
}
}
cout<<n<<endl;
}
用擦掉函数
0
方亦欧
新手光能
新手光能
这一题的思路如下:
为了方便叙述,就拿一组测试数据来举例。
先读入两个变量,记为s和n,其中s为了方便操作定义成字符串类型,n为整型。
while(n>0) //还有字符需要删除时执行操作
for(int i=0;i<s.size();i++)
if(i指向字符串末尾 || 当前位置的字符<下一位置的字符)
{
删除当前位置的字符;
n--;
退出for循环;
}
最后,输出s字符串。
(你的代码我看过了,并不懂你的思路,并且是C语言的程序,没有办法直接写出来,所以给你一个思路)
0
0
0