一、问题描述
二、解题思路
# 1.拆分版本字符串 # 每行用空格分割: # 第一部分是主版本字符串(如1.0.2),按.切分转整数列表用于比较; # 如果有第二部分,说明是测试版,提取 beta 后面的数字;没有则是正式版。 # 2.自定义排序 key(核心) # key 是一个元组,排序时会从左到右依次对比: # (主版本整数列表, 是否正式版标记, beta数字) # 是否正式版:测试版填1,正式版填2 → 主版本相同时测试版排在前面; # 测试版存 beta 后的数字,正式版随便填大数(不会用到)。 # 3.用sorted配合自定义 key 排序,最后逐行输出原字符串。 n = int(input()) versions = [] for _ in range(n): s = input().strip() # 例:s = "1.0.2 beta3" # s.split() → 用空格切开,得到: # parts = ["1.0.2", "beta3"] # parts [0] = "1.0.2" → 主版本号 # parts [1] = "beta3" → beta 测试标记 parts = s.split() main_str = parts[0] # 处理主版本,转整数列表 main = list(map(int,main_str.split('.'))) if len(parts) == 2: # 测试版 betaX beta_num = int(parts[1][4:]) # key: (主版本列表, 1=测试版, beta数字) key = (main,1,beta_num) else: # 正式版 key = (main,2,9999) versions.append((key, s)) # 按key升序排序 versions.sort() # 输出原字符串 for item in versions: print(item[1])