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

输入三个小写字符按字母顺序排序的程序调试求助

问题

需求:编写程序接收三个小写字符,按字母顺序输出。提示说明排序三个字符有6种排列,例如输入CBA时输出ABC。

我编写了包含6种排列判断逻辑的代码,但仅获得3/10的测试通过率,调整输出顺序也无法解决逻辑错误,请求调试帮助。代码如下:

char1 = input()
char2 = input()
char3 = input()

order1 = str(char1 + char2 + char3)
order2 = str(char1 + char3 + char2)
order3 = str(char2 + char1 + char3)
order4 = str(char2 + char3 + char1)
order5 = str(char3 + char2 + char1)
order6 = str(char3 + char1 + char2)

if order1[0] < order1[1] and order1[1] < order1[2] :
    print(char1, char3, char2)
elif order2[0] < order2[1] and order2[1] > order2[2] :
    print(char1, char2, char3)
elif order3[0] < order3[1] and order3[1] > order3[2] :
    print(char2, char1, char3)
elif order4[0] < order4[1] and order4[1] > order4[2] :
    print(char2, char3, char1)
elif order5[0] < order5[1] and order5[1] > order5[2] :
    print(char3, char1, char2)
elif order6[0] < order6[1] and order6[1] > order6[2] :
    print(char3, char2, char1)
调试分析与修正

原代码核心错误

  1. 条件与输出完全不匹配:比如第一个if判断order1是严格升序(char1 < char2 < char3),但输出的却是char1, char3, char2,完全违背了升序要求。
  2. 判断逻辑偏离目标:后续elif的条件都是判断排列为“中间字符大于两边”的形状(如order2[0] < order2[1] and order2[1] > order2[2]),而不是判断该排列是否为升序,导致大部分输入场景无法匹配到正确的输出分支。

修正方案

方案1:利用内置排序(简洁高效,推荐)

直接将三个字符存入列表,调用内置排序方法后输出:

# 读取输入,strip()处理可能的空白字符
char1 = input().strip()
char2 = input().strip()
char3 = input().strip()

# 存入列表并排序
chars = [char1, char2, char3]
chars.sort()

# 按要求输出
print(' '.join(chars))

方案2:按枚举排列的思路实现(符合题目提示)

枚举所有6种排列,找到其中严格升序的排列并输出:

char1 = input().strip()
char2 = input().strip()
char3 = input().strip()

# 列出所有6种字符排列组合
all_permutations = [
    (char1, char2, char3),
    (char1, char3, char2),
    (char2, char1, char3),
    (char2, char3, char1),
    (char3, char1, char2),
    (char3, char2, char1)
]

# 遍历找到升序的排列并输出
for perm in all_permutations:
    if perm[0] < perm[1] and perm[1] < perm[2]:
        print(perm[0], perm[1], perm[2])
        break

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:32:45