Median String

Codeforces Round #550 (Div. 3)E. Median String

题意:

输入一个n表示一个字符串里面有几个字符,然后寻找这俩个字符串中间的字符。

思路:

模拟26位进制数表示

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int ans[maxn];
int main(){
int n;
cin>>n;
string a,b;
cin>>a>>b;
for(int i=n-1;i>=0;i--){
ans[i]=a[i]-'a'+b[i]-'a';
if(ans[i]&1){
ans[i+1]+=13;
ans[i]=ans[i]-1>>1;
ans[i]+=ans[i+1]/26;
ans[i+1]%=26;
}
else{
ans[i]>>=1;
}
}
for(int i=0;i<n;i++) printf("%c",'a'+ans[i]);
cout<<endl;
}