题意:给定一个字符串,选择一个字母为原点,按照字符串中字母排列的顺序计算每个字母到原点的距离,距离先采用有先导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;
}