暂且引用某个答主的代码
#include<iostream>
#include<string>
using namespace std;
int n,k,a[257],rest,t=1,minp,cnt=0;
bool flag=0;
string num;
int main(){
cin>>num>>k;
n=num.length();
for(int i=1;i<=n;++i)a[i]=num[i-1]-'0';
rest=n-k;
while(cnt<rest){
minp=t;
for(int i=t;i<=k+t;++i)if(a[minp]>a[i])minp=i;
if(a[minp])flag=1;
if(flag)cout<<a[minp];
k-=minp-t;
t=minp+1;
cnt++;
}
if(!flag)cout<<0;
return 0;
}
这个代码在输入
1000009
1
时,输出是9
但显而易见应该是100000
有输入多组测试数据,只要中间的0多起来,题解总会出错
求一篇可以正确解答含有多个0的输入的题解