題目
原題鏈接:B. Decoding
題意
給出一個(gè)字串,它是經(jīng)過處理的字串,求原字串。每次輸出中間的字母。若有兩個(gè),則輸出左邊的那個(gè),隨后丟棄該字母,到?jīng)]有字母結(jié)束。代碼比較亂,思路是從中間向兩頭一個(gè)一個(gè)。
代碼
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,r,l,flag=1;
char s[2000],t[2000];
cin>>n>>s;
if(n%2==0) {
l=n/2-1;
r=n/2;
} else {
l=r=n/2;
}
for(int i=0; i<n; i++) {
if(i%2==0) {
t[l]=s[i];
l--;
if(n%2!=0 && flag){
r++;
flag=0;
}
} else {
t[r]=s[i];
r++;
}
}
if(n%2!=0) reverse(t,t+n);
for(int i=0;i<n;i++){
printf("%c",t[i]);
}
return 0;
}