简单题。
删去结尾的不是$0$的数字,保证结尾连续的$k$个都是$0$,如果不能做到,就保留一个$0$。
#include<map> #include<set> #include<ctime> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<functional> using namespace std; char s[10000]; int k; int main() { scanf("%s%d",s,&k); int len=strlen(s); int i ,sum=0, ans=0; for( i=len-1;i>=0;i--) { if(s[i]=='0') sum++; else ans++; if(sum==k) break; } if(i==0||sum<k) printf("%d ",len-1); else printf("%d ",ans); return 0; }