3 条题解

  • 0
    @ 2025-3-7 19:54:09

    易错点解析详见代码部分注释 《警钟长鸣》(外网记得修改网址)

    附上题解:

    cnt = [0]*30
    max_len = 0
    for _ in range(4): # 此处糖点详见上贴
        s = input()
        for i in s:
            if 'A'<=i and i<='Z':
                cnt[ord(i)-ord('A')] += 1
                max_len = max(max_len, cnt[ord(i)-ord('A')])
    for i in range(max_len):
        s = ""
        for j in range(26):
            if i < max_len-cnt[j]: # 这里的条件要想清楚
            # 说实话建议用倒序
                s += "  "
            else:
                s += "* "
        k = 2*26-1
        while k>=0 and s[k]==' ': # k>=0 不要忘,否则可能会越界
            k-=1
        print(s[:k+1]) # 去除行末空格可以直接用切片(而不是像我一开始用的古老for循环())
    for i in range(ord('A'), ord('Z')):
        print(chr(i)+' ', end='')
    print('Z')
    

    信息

    ID
    709
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    23
    已通过
    10
    上传者