版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yz467796454/article/details/82561447
题目链接:https://nanti.jisuanke.com/t/31461
样例输入
2
3 z
oMl
6 Y
YJSNPI
样例输出
6
10
题意:给一个长度为n的字符串s,再给一个字符c,将字符串每一个字符的ASCII码-c的ASCII码,保留前导零,使得数字为两位,然后去掉整串数字的前导零,输出数字的长度。
思路:直接模拟就好,注意全是0的情况,输出1
#include<queue>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<set>
using namespace std;
typedef long long ll;
char s[1000006];
char ans[1000006*2];
int main(){
int t;
scanf("%d",&t);
while(t--){
int n;
char c[10];
scanf("%d%s",&n,c);
scanf("%s",s);
int len=0;
for(int i=0;i<n;i++){
int x=abs((int)c[0]-(int)s[i]);
if(x<10){
ans[len++]='0';
ans[len++]=x+'0';
}
else{
ans[len++]=(x/10)+'0';
ans[len++]=(x%10)+'0';
}
}
int st=-1;
for(int i=0;i<len;i++){
if(ans[i]!='0'){
st=i;
break;
}
}
if(st==-1)printf("1\n");
else printf("%d\n",len-st);
}
return 0;
}