E. Median String(单词大数加)

, 26 开始真是想复杂了,实际上单词可以看成26进制数啊

a 0 , z 25 'a'表示0,'z'表示25

2 ? 那实际上不就是模拟大数相加然后除以2吗?

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int a[maxn],n;
int main()
{
	string b,c;
	cin >> n >> b >>c;
	for(int i=n-1;i>=0;i--)
	{
		a[i+1]+= int(c[i] - 'a') +int(b[i] - 'a');
		a[i]=a[i]+a[i+1]/26;
		a[i+1]%=26;
	}
	if(a[0]%2!=0)	a[1]+=26;
	for(int i=1;i<=n;i++)
	{
		cout<<char('a'+a[i]/2);
		if(a[i] % 2 != 0)	a[i+1]+=26;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/jziwjxjd/article/details/106827349
今日推荐