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

字母兰戈利(Alphabet Rangoli)代码隐藏测试用例问题求助

问题排查与修复

核心问题1:字母顺序颠倒

你的代码生成的字母片段是从小到大排列(如b-c),但字母兰戈利要求每一行的字母从最大的目标字母向中间递减(如c-b),这导致镜像后的行结构错误。

比如当size=2时,你的代码生成中间行为a-b-a,但正确结果应为b-a-b。

修复方式:在生成字母字符串时,将切片得到的字母列表反转:

# 原代码行
string = '-'*dash + '-'.join(alphalist[iter-1:size])

# 修改为
letters = alphalist[iter-1:size]
string = '-'*dash + '-'.join(letters[::-1])

核心问题2:输入提示语干扰在线测试

你的代码使用input('enter size:')添加了提示文本,但在线测试平台仅期望输出兰戈利图案,额外的提示语会被判定为输出错误。

修复方式:移除提示语,直接读取输入:

# 原代码行
size = int(input('enter size:'))

# 修改为
size = int(input())

其他潜在问题:循环冗余

原循环条件while not (dash<0 and iter <0)会多执行一次无意义的循环(当iter和dash都为负数时才停止),可以优化为更清晰的条件:

# 原循环
while not (dash<0 and iter <0):
    dash -=2
    string = '-'*dash + '-'.join(alphalist[iter-1:size])
    if string != '':
        list_reverse.append(string)
    iter -=1

# 修改为(循环size次即可,因为需要生成size行上半部分)
for i in range(size):
    dash = 2*(size - i -1)
    letters = alphalist[i:size]
    string = '-'*dash + '-'.join(letters[::-1])
    list_reverse.append(string)

修复后的完整代码

alphabet = 'abcdefghijklmnopqrstuvwxyz'
alphalist = list(alphabet)
size = int(input())
list_reverse = []
rangoli_final = []

for i in range(size):
    dash = 2*(size - i -1)
    letters = alphalist[i:size]
    string = '-'*dash + '-'.join(letters[::-1])
    list_reverse.append(string)

for rangoli in list_reverse:
    rangoli_final.append(rangoli[:-1] + rangoli[::-1])  

for val in rangoli_final[:len(rangoli_final)-1]:
    print(val)   
for mirror in rangoli_final[::-1]:
    print(mirror)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:54:58