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

Horizontal to Vertical Pattern实现问题:如何修正星号输出顺序

解决Horizontal to Vertical Pattern程序的星号顺序问题

原代码的问题

  1. 语法错误:map(int,input(),split()) 存在两处错误:
    • 输入是字符串矩阵,无需转成int,应使用str
    • split()是input()的方法,正确写法为input().split()
  2. 遍历逻辑错误:原代码按「行→行内字符位置→列」的顺序遍历,且仅以当前行的最大字符串长度为基准生成星号,导致不同行的星号补全逻辑独立,不符合全局统一的垂直排版要求。

修正后的代码

n = int(input())
# 读取N×N字符串矩阵,确保每行取前n个元素
matrix = [list(map(str, input().split()))[:n] for _ in range(n)]

# 计算整个矩阵中所有字符串的最大长度,作为输出的总行数
max_length = max(len(s) for row in matrix for s in row)

# 遍历每个字符位置k(从0到max_length-1)
for k in range(max_length):
    # 遍历每一行i
    for i in range(n):
        # 遍历该行的每个列j
        for j in range(n):
            try:
                # 输出第i行第j列字符串的第k个字符
                print(matrix[i][j][k], end=' ')
            except IndexError:
                # 字符不存在时输出星号
                print('*', end=' ')
        # 每一行的所有列输出完后换行
        print()

代码说明

  • 先获取全局最大字符串长度,确保所有垂直位置都按最长字符串的长度统一补全星号
  • 遍历顺序改为「字符位置→行→列」,保证星号位置符合示例的垂直排版要求
  • 修正了输入读取的语法错误,正确读取字符串矩阵

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:07:16