+10 投票
分类:编码思路 | 用户: 9 4 3 (2.5k 分)
修改于 用户:

【问题描述】

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。

当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。

正式地讲,提莫在 t 发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。

给你一个 非递减 的整数数组 timeSeries ,其中 timeSeries[i] 表示提莫在 timeSeries[i] 秒时对艾希发起攻击,以及一个表示中毒持续时间的整数 duration 。

返回艾希处于中毒状态的 总秒数。

【输入形式】

第一行:英文[]包裹,英文,分割的若干非递减正整数数组

第二行:一个正整数

【输出形式】

一个正整数

【样例输入】

[1,4]

2

【样例输出】

4

#提莫

def findPoisonedDuration(timeSeries, duration):

        time = 0

        for i in range(len(timeSeries)-1):

            if timeSeries[i+1]-timeSeries[i]<duration:

                time += (timeSeries[i+1]-timeSeries[i])

            else:

                time += duration

        return time+duration

nums = input()

dura = int(input())

nums = nums[1:-1]

num = nums.split(',')

num = list(map(int, num))

print(findPoisonedDuration(num, dura))

3 个回答

+5 投票
用户: 7 3 2 (700 分)
info = input()#输入样例
duration = int(input())#输入duration并化为整数型
info = info[1:-1]#去除括号
lst = info.split(',')#将数字装入列表

timeSeries = []#将列表中元素化为整数型
for a in lst:
    a = int(a)
    timeSeries.append(a)

result = 0+duration#由于下面不考虑最后一次中毒,故提前加上
for i in range(0,len(timeSeries)-1):
    if timeSeries[i] + duration >= timeSeries[i+1]:
        result = result+(timeSeries[i+1]-timeSeries[i])
    else:
        result = result + duration

print(result)

用户: 7 3 2 (700 分)
大家都来看!
+1 投票
用户: 8 5 3 (2.1k 分)
times = (input().removeprefix("[").removesuffix("]")).split(",")
num = len(times)
duration = int(input())
output = duration*num
for i in times:
    times.remove(i)
    for j in times:
        if int(j) < int(i) +duration - 1:
            output -= int(i)+duration-int(j)
print(output)
0 投票
用户: 5 1 (530 分)
timeSeries=eval(input())
duration=input()
time=0
for i in range(len(timeSeries)-1):
    if timeSeries[i+1]-timeSeries[i] >int(duration):
        time+=int(duration)
    else:
        time+=(timeSeries[i+1]-timeSeries[i])
time+=int(duration)
print(time)
欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...