You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现基于高宽的字符串格式化输出及指定行提取函数?

编程任务解决方案

1. 实现the_function

需求说明

将输入的字符串按指定width(宽度)分割成height(高度)行,每行包含width个字符,最终返回或输出这些行组成的多行字符串。

实现代码

def the_function(s, width, height):
    # 按宽度分割字符串,生成每行内容
    lines = [s[i*width : (i+1)*width] for i in range(height)]
    # 用换行符拼接所有行
    return '\n'.join(lines)

测试验证

# 第一个示例
print(the_function('<..vvv..^', 3, 3))
# 输出:
# <..
# vvv
# ..^

# 第二个示例
print(the_function('<.vv.v.v', 2, 4))
# 输出:
# <.
# vv
# .v
# .v

逻辑解释

  • 通过列表推导式遍历0到height-1的索引,每个索引对应一行的起始位置(i*width)和结束位置((i+1)*width),截取对应长度的子串作为每行内容。
  • 使用'\n'.join(lines)将所有行用换行符拼接,返回后直接打印即可得到示例中的多行格式。

2. 实现another_function

需求说明

接收字符串、行号x、宽度width和高度height,返回第x行对应的字符串(行号从0开始计数)。

实现代码

def another_function(s, x, width, height):
    start_index = x * width
    return s[start_index : start_index + width]

测试验证

# 第一个示例
print(another_function('.<.>>>..v', 1, 3, 3))  # 输出: '>>>'

# 第二个示例
print(another_function('.v>..>..', 0, 2, 8))    # 输出: '.v'

逻辑解释

  • 第x行的起始索引为x * width,因为每行占width个字符。
  • 从起始索引开始截取长度为width的子串,即为第x行的内容。

内容的提问来源于stack exchange,提问作者Iplaysoccer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:05:16