P17173 「MSOI R1」回响 题解
题目大意
给你一个字符串,长度为 \(N\)。首先你需正序输出整个字符串,然后倒序输出后 \(N-1\) 字符,然后再正序输出前 \(N-2\) 个字符,然后再倒序输出后 \(N-3\) 个字符,一直这样重复,直到输出了 \(0\) 个字符。
算法思路
按题意模拟即可,其实只要懂了题意就很简单了。
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
string s;
cin>>s;
bool f=0;int n=s.size();
// 正序还是倒序
int m=n;//需要输出的字符数量
s=" "+s;
for(int i=1;i<=n;i++){
if(!f){//正序
for(int i=1;i<=m;i++){
cout<<s[i];
}
}else{//倒序
for(int i=n;i>=n-m+1;i--){
cout<<s[i];
}
}
f=!f;//更新变量
m--;
}
}

浙公网安备 33010602011771号