ACM-ICPC I. Characters with Hash(徐州赛区网络预赛)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a17865569022/article/details/82559966

这里写图片描述
这里写图片描述
题意:给定一个字符串,选择一个字母为原点,按照字符串中字母排列的顺序计算每个字母到原点的距离,距离先采用有先导0的方式记录,最后将字母字符串全部转换成数字字符串之后再去掉最前边的先导零,问最后得到的去掉先到0数字字符串的长度。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
char s[1000005];
char a[2000005];
int main()
{
    int t;cin>>t;
    while(t--)
    {
        int n;char e;
        memset(s,0,sizeof(s));
        memset(a,0,sizeof(a));
        scanf("%d %c",&n,&e);
        scanf("%s",s);
        int cnt=0,ans=0;
        for(int i=0;i<n;i++)
        {
            int x=abs(s[i]-e);
            if(x==0&&i==0) a[ans++]='0';
            else
            {
                int c=x%10;
                int b=(x/10)%10;
                a[ans++]=b+'0';
                a[ans++]=c+'0';
            }
        }
        //printf("%s\n",a);
        for(int i=0;i<ans;i++)
        {
            if(a[i]=='0')
                cnt++;
            if(a[i]!='0')
                break;
        }
        int len=ans-cnt;
        if(len==0) cout<<"1"<<endl;
        else cout<<len<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/a17865569022/article/details/82559966