// 最小的调整次数
func HW2023020() {
var listArr: [String] = []
// 测试用例
// listArr = ["head add 1", "remove", "tail add 2", "head add 3", "remove", "remove"]
// listArr = ["tail add 6", "head add 4", "tail add 5", "head add 1", "remove", "tail add 2","remove", "remove", "head add 3", "remove", "remove"]
// 开始代码
let _ = Int(readLine()!)!
while let line = readLine() {
listArr.append(String(line))
}
var index = 1 // 删除的整数,相等于索引
var res = 0 // 变换次数
var deque: [Int] = []
for str in listArr {
let tempArr = str.components(separatedBy: " ")
if tempArr.count == 1 { // 移除
if Int(deque.first!) != index {// 当前数字不符合要求
deque = deque.sorted()
res += 1
}
deque.removeFirst()
index += 1
}else {
if tempArr[0] == "head" {
deque.insert(Int(tempArr[2])!, at: 0) // 头部添加
}else {
deque.append(Int(tempArr[2])!) // 尾部添加
}
}
}
print(res)
}
网友评论