





// 投篮大赛
func HW2023022() {
//测试用例
// let inputStr = "5 2 C D +"
// let inputStr = "5 -2 4 C D 9 + +"
// let inputStr = "1"
// let inputStr = "+"
// 开始代码
let inputStr: String = String(readLine()!)
let inputArr = inputStr.components(separatedBy: " ")
var resArr: [Int] = [] // 存储每项数据
var isError = false // 是否出现异常,初始值false
for i in inputArr {
if i == "+" {
if resArr.count > 1 {
let sum = resArr[resArr.count - 1] + resArr[resArr.count - 2] // 获取最后两项分数求和
resArr.append(Int(sum))
}else {
isError = true
break
}
}else if i == "C" {
if resArr.count > 0 {
resArr.removeLast() // 移除最后一项分数
}else {
isError = true
break
}
}else if i == "D" {
if resArr.count > 0 {
let last = resArr[resArr.count - 1] // 获取最后一项分数
resArr.append(Int(last)*2)
}else {
isError = true
break
}
}else {
resArr.append(Int(i)!)
}
}
// 如果isError==true表示异常打印-1,否则数组求和并打印
print(isError ? "-1" : resArr.reduce(0) { $0 + $1 })
}
网友评论