A - Decoding(思維題+就判斷+填充)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
題意:給你加密的字符串,要你求源串,如何加密題上說了有,所以直接判斷奇偶掃一遍就OK;

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
   int n;
    scanf("%d",&n);
	string s;
	cin>>s;
	char ans[2500];
	int left,right;
	  if(n&1){
	  	  int mid=n/2;
	  	  ans[mid]=s[0];//填中間
	  	   left=mid-1,right=mid+1;
	  	  for(int i=1;i<n;i++){//兩邊填,這裏用筆寫一下就很好理解了
	  	  	    if(i&1){
	  	  	    	 ans[left--]=s[i];
					}else {
						ans[right++]=s[i];
					}
			}
	  }else{
	  	int mid=n/2-1;
	  	ans[mid]=s[0];
	  	 left=mid-1,right=mid+1;
	  	for(int i=1;i<n;i++){//兩邊填
	  		  if(i&1)ans[right++]=s[i];
	  		  else ans[left--]=s[i];
		  }
	  }
	  ans[right]='\0';//注意char *需要'\0'作爲結束符
	  printf("%s\n",ans);
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章