LeetCode-5:蜡烛之间的盘子
Posted il_持之以恒_li
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-5:蜡烛之间的盘子相关的知识,希望对你有一定的参考价值。
原题为:
参考代码为:
class Solution(object):
def platesBetweenCandles(self, s, queries):
"""
:type s: str
:type queries: List[List[int]]
:rtype: List[int]
"""
n = len(s)
list_1 = [0] * n
list_2 = [0] * n # 从后往前
list_3 = [0] * n # 从前往后
if s[0] == '|':
list_1[0] = 1
list_3[0] = 0
if s[n-1] == '|':
list_2[n-1] = n-1
for i in range(1, n):
if s[i] == '|':
list_1[i] = list_1[i - 1] + 1
else:
list_1[i] = list_1[i - 1]
if s[i] == '|':
list_3[i] = i
else:
list_3[i] = list_3[i-1]
for i in range(n-2,-1,-1):
if s[i] == '|':
list_2[i] = i
else:
list_2[i] = list_2[i + 1]
out = []
for list_4 in queries:
start = list_4[0]
end = list_4[1]
if start == end:
out.append(0)
continue
index_1 = list_2[start]
index_2 = list_3[end]
if index_1 >=index_2:
out.append(0)
else:
out.append(index_2-index_1+1-(list_1[index_2]-list_1[index_1]+1))
return out
执行结果:
以上是关于LeetCode-5:蜡烛之间的盘子的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 504. 七进制数 / 2055. 蜡烛之间的盘子 / 798. 得分最高的最小轮调(差分数组)
2022-03-30:有m个同样的苹果,认为苹果之间无差别, 有n个同样的盘子,认为盘子之间也无差别, 还有,比如5个苹果如果放进3个盘子, 那么131和113和311的放置方法,也认为是