ACM-ICPC 2018 徐州赛区网络预赛 I. Characters with Hash(签到,模拟)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}

猜你喜欢

转载自blog.csdn.net/yz467796454/article/details/82561447