Python 我的输出是相同的,但所有测试用例在GoogleFooBar挑战中都失败了 电梯维修

Python 我的输出是相同的,但所有测试用例在GoogleFooBar挑战中都失败了 电梯维修,python,Python,你被指派了繁重的电梯维修任务-啊! 这不会太糟糕,除非所有的电梯文件都已经 在文件柜底部杂乱无章地躺了多年, 你甚至不知道你将要使用的电梯版本号 电梯版本由一系列数字表示, 分为大整数、小整数和修订整数。 新版本的电梯增加了主数量,例如1、2、3等。 当新功能添加到电梯中而不是一个完整的新版本时, 第二个名为“minor”的数字可以用来表示这些新添加的内容, e、 g.1.0、1.1、1.2等。可以表示小的修复或维护工作 通过第三个名为“修订版”的数字,例如1.1.1、1.1.2、1.2.0等。

你被指派了繁重的电梯维修任务-啊! 这不会太糟糕,除非所有的电梯文件都已经 在文件柜底部杂乱无章地躺了多年, 你甚至不知道你将要使用的电梯版本号

电梯版本由一系列数字表示, 分为大整数、小整数和修订整数。 新版本的电梯增加了主数量,例如1、2、3等。 当新功能添加到电梯中而不是一个完整的新版本时, 第二个名为“minor”的数字可以用来表示这些新添加的内容, e、 g.1.0、1.1、1.2等。可以表示小的修复或维护工作 通过第三个名为“修订版”的数字,例如1.1.1、1.1.2、1.2.0等。这个 零号可作为电梯预发布版本的主要编号, e、 g.0.1、0.5、0.9.2等(Lambda指挥官总是小心地进行测试 她的新技术,还有她的忠实追随者

给定以字符串表示的电梯版本列表,编写一个函数 返回相同排序列表的解决方案(l) 按主修、辅修和修订编号的升序排列,以便 可以识别当前电梯版本。这个 列表l中的版本将始终包含主要编号,但包含次要编号和 修订号是可选的。如果版本 包含修订号,则它也将有一个次要编号

例如,给定列表l为[“1.1.2”、“1.0”、“1.3.3”、“1.0.12”、“1.0.2”], 函数解(l)将返回 清单[“1.0”、“1.0.2”、“1.0.12”、“1.1.2”、“1.3.3”]。 如果两个或多个版本等效,但一个版本包含多个版本 与其他版本相比,这些版本必须按升序排序 他们有多少号码,例如 ["1","1.0", "1.0.0"]. 列表l中的元素数量至少为1,且不超过100

我知道这个问题并不像上面所说的那么简单,我不知道我在这个问题上忘记了什么

我的节目:

def solution(l):
    l.sort()
    print(l)
验证时我的错误:

def solution(l):
    l.sort()
    print(l)
  • 测试用例1失败
  • 测试用例2失败
  • 测试用例3失败(隐藏)
  • 测试用例4失败(隐藏)
  • 测试用例5失败(隐藏)
  • 列表项
输出

['1.0', '1.0.2', '1.0.12', '1.1.2', '1.3.3']

您需要提供一个特定的键函数,以便根据条件进行排序,还需要查找您正在编写的内容,但当我使用测试用例输入时,我的输出是相同的。如果您的代码是正确的,那么测试用例就不会失败。您的代码将
['1.0','1.0.12','1.0.2','1.1.2','1.3.3']
作为输出,而不是
[“1.0”,“1.0.2”,“1.0.12”,“1.1.2”,“1.3.3”]
重复:感谢prashant的帮助,您的代码正在给我写输出,但在foo中验证过程失败bar@PatrickArtner解释完毕。@vinodkaradiya如果您提供代码失败的输入,则更好。我只有这两个测试用例2/5输入:solution.solution([“1.11”、“2.0.0”、“1.2”、“2”、“0.1”、“1.2.1”、“1.1.1”、“2.0”])输出:0.1,1.1.1,1.2,1.2.1,1.11,2,2.0,2.0.0输入:解决方案。解决方案([“1.1.2”、“1.0”、“1.3.3”、“1.0.12”、“1.0.2”]))输出:1.0,1.0,1.0.2,1.3。3@vinodkaradiya也许这就是时间复杂性的问题,这就是它出错的原因