假设您有一个列表,它只有两种类型的值,类似于['t','r','r','r','t','t','r','r','t']
,您希望找到两端都有't'
的'r'
的最小序列号的长度
在这种情况下,'r'
的最小序列的长度为2,因为首先是t,r,r,r,t
,然后是t,r,r,t,
,而后者在被't'
包围的行中具有最小的'r'
数,'r'
数为2
我该如何编码才能找到那个号码
这是因为你想和你的朋友一起去看戏,你想和你的朋友坐得尽可能近,所以你想在一场戏的两个空闲座位之间找到最少的座位。“#”是有人坐的座位,“.”是空座位。您将获得座位数量和座位安排(免费座位和有人坐的座位),它们都在一行中。 输入的一个例子是:
5
#.##.
在两个空闲座位之间有两个有人坐的座位
这是我的代码,它不是为我不知道的输入工作,而是为我抛出的输入工作
import sys
seats = int(input())
configuration = input()
seatsArray = []
betweenSeats = 1
betweenSeatsMin = 1
checked = 0
theArray = []
dotCount = 0
for i in configuration:
seatsArray.append(i)
for i in range(len(seatsArray)):
if i == len(seatsArray) - 1:
break
if seatsArray[i] == "." and seatsArray[i+1] == ".":
print(0)
sys.exit()
for i in range(0,len(seatsArray)):
if i > 0:
if checked == seats:
break
checked += 1
if seatsArray[i] == "#":
if i > 0:
if seatsArray[i-1] == "#":
betweenSeats += 1
if seatsArray[i] == ".":
dotCount += 1
if dotCount > 1:
theArray.append(betweenSeats)
betweenSeats = 1
theArray = sorted(theArray)
if theArray.count(1) > 0:
theArray.remove(1)
theArray = list(dict.fromkeys(theArray))
print(theArray[0])
这是一个无稽之谈!使用最小和最大序列的计数器来解决问题的最佳方法,ew将两者进行比较并返回最小值
从列表中创建一个字符串,然后搜索所需的模式,然后在找到的匹配项中计算r,然后取最小值 代码:
输出:
相关问题 更多 >
编程相关推荐