题解 | #桶装康帅傅串#

桶装康帅傅串

https://ac.nowcoder.com/acm/problem/21488

我们可以把这道题近似看成在一个二维数组中对指定地方进行赋值。 对于这一道题最重要的就是我们要确定边界条件 alt (图画的比较丑,请忽略) 对行数(a,c)

a = (len + 2) / 3

在这里我们不用担心行数会大于列数b的,因为/得到的结果是向下取整的。 对于列数

 b = len + 2 - 2 * a

alt 先输出蓝色部分

for (int i = 0; i < a - 1; i++) {
	cout << s[i];
	for (int j = 0; j < b - 2; j++) {
		cout << " ";
	}
	cout << s[len - 1 - i] << endl;
}

再输出绿色部分

for (int i = a - 1; i < a + b - 1; i++) {
	cout << s[i];
}

下面是全部代码

#include<bits/stdc++.h>
using namespace std;
int T;
string s;
int main() {
	cin >> T;
	while (T--)
	{
		cin >> s;
		int len = s.length();
		int a = (len + 2) / 3, b = len + 2 - 2 * a;
		for (int i = 0; i < a - 1; i++) {
			cout << s[i];
			for (int j = 0; j < b - 2; j++) {
				cout << " ";
			}
			cout << s[len - 1 - i] << endl;
		}
		for (int i = a - 1; i < a + b - 1; i++) {
			cout << s[i];
		}
		cout << endl << endl;
	}
	return 0;
}
全部评论
nb
点赞 回复 分享
发布于 2024-07-27 13:33 湖南
牛逼
点赞 回复 分享
发布于 2024-07-26 18:54 湖南

相关推荐

嘀哩咕噜说啥呢:27届,这简历,强的逆天,大厂实习随便冲,面经多少看点,hot100刷完,大厂随便挑了
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务