// 获取最大软件版本号
func HW2023018() {
// 测试用例
// let a = "2.5.1-C", b = "1.4.2-D" // 2.5.1-C
// let a = "1.3.11-S2", b = "1.3.11-S13" // 1.3.11-S2
// let a = "1.05.1", b = "1.5.01" // 1.5.01
// let a = "1.5", b = "1.5.0" // 1.5.0
// let a = "1.5.1-A", b = "1.5.1-a" // 1.5.1-A
// 开始代码
let a = String(readLine()!)
let b = String(readLine()!)
let splitA = a.components(separatedBy: ".")
let splitB = b.components(separatedBy: ".")
// 先比较主次版本
for i in 0..<2 {
let v1 = Int(splitA[i])!
let v2 = Int(splitB[i])!
if v1 != v2 {
print(v1 > v2 ? a : b)
return
}
}
// 再看增量版本-里程碑版本
if splitA.count > 2 && splitB.count > 2 {
// 两个都有增量版本
let splitA2 = splitA[2].components(separatedBy: "-")
let splitB2 = splitB[2].components(separatedBy: "-")
let v1 = Int(splitA2[0])!
let v2 = Int(splitB2[0])!
// 比较增量版本
if v1 != v2 {
print(v1 > v2 ? a : b)
return
}
if splitA2.count > 2 && splitB2.count > 2 {
// 有里程碑版本
print(String(splitA2[1]).compare(String(splitB2[1])).rawValue >= 0 ? a : b)
}else {
// 至少有一个无里程碑版本
print(splitA2.count >= splitB2.count ? a : b)
}
}else {
// 至少有一个无增量版本
print(splitA.count >= splitB.count ? a : b)
}
}
网友评论