本题有BUG
查看原帖
本题有BUG
1037870
jianxing04楼主2023/10/20 20:09

暂且引用某个答主的代码

#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的输入的题解

2023/10/20 20:09
加载中...