CF2093B

Solution

可以发现,只要想删,一定可以做到把除了前导零和唯一一个非零数的数全部删了,此时的值就是唯一一个数加上前导零除以它自己也就是 $1$。

所以从后往前找到第一个非零的位置,后面的零全都删掉,前面保留,个数即为答案。

Code

#include<bits/stdc++.h>
using namespace std;
using LL=long long;
string s;
LL n,ans,t,loc;
int main(){
    cin>>t;
    while(t--){
        ans=0;
        cin>>s;
        n=s.size();
        s=' '+s;
        for(int i=n;i>=1;i--){
            if(s[i]>'0'){
                loc=i;
                break;
            }
        }
        for(int i=1;i<loc;i++)if(s[i]>'0') ans++;
        cout<<n-loc+ans<<endl;
    }
    return 0;
}