最新华为OD机试
题目描述
有一批箱子(形式为字符串,设为str),
要求将这批箱子按从上到下以之字形的顺序摆放在宽度为 n 的空地,请输出箱子的摆放位置。
例如:箱子ABCDEFG,空地宽度为3,摆放结果如图:
则输出结果为:
AFG
BE
CD
输入描述
输入一行字符串,通过空格分隔,前面部分为字母或数字组成的字符串str,表示箱子;
后面部分为数字n,表示空地的宽度。例如:
ABCDEFG 3
输出描述
输出只有一个整数,表示会影响或结果的交换方案个数。
箱子摆放结果,如题目示例所示
AFG
BE
CD
备注
- 请不要在最后一行输出额外的空行
- str只包含字母和数字,1 <= len(str) <= 1000
- 1 <= n <= 1000
示例1
输入
ABCDEFG 3
输出
AFG
BE
CD
说明
解题思路
题意
有点像这道题:https://leetcode.cn/problems/zigzag-conversion/description/
-
题目背景:有一批箱子,用一个字符串
str
表示,每个字符代表一个箱子。将这些箱子以“之字形”的顺序放在一个宽度为n
的空地中。 -
之字形摆放:在一个宽度为
n
的空地中,从上到下、从左到右,以“之字形”摆放箱子,摆放规则如下:- 第一列:从上到下摆放
n
个箱子。 - 第二列:从下到上摆放
n
个箱子。 - 第三列:再从上到下摆放,以此类推,每列摆放方向交替。
- 每列在摆放时的位置会交替,因此称之为“之字形”摆放。
- 第一列:从上到下摆放
-
输出要求:按照每一列的结果从左到右依次输出。每行代表一列的箱子内容,不要输出额外的空行。
摆放过程:
- 第一列:从上到下摆放
A
、B
、C