当前位置: 首页 > 面试经验 >

【华为OD机试2023】机房布局Python

优质
小牛编辑
110浏览
2023-03-28

【华为OD机试2023】机房布局Python

题目描述:

小明正在规划一个大型数据中心机房,为了使得机柜上的机器都能正常满负荷工作,需要确保在每个机柜边上至少要有一个电箱。 为了简化题目,假设这个机房是一整排,M表示机柜,I表示间隔,请你返回这整排机柜,至少需要多少个电箱。 如果无解请返回 -1 。

输入描述:

cabinets = "MIIM"

其中M表示机柜,I表示间隔

输出描述:

2

表示至少需要2个电箱

补充说明:

1<= strlen(cabinets) <= 10000

其中 cabinets[i] = ‘M’ 或者 'I'

示例1

输入:

MIIM

输出:

2

示例2

输入:

MIM

输出:

1

示例3

输入:

M

输出:

-1

示例4

输入:

MMM

输出:

-1

示例5

输入:

I

输出:

0

解题思路:

无解一共四种情况(机房长度小于2,最左侧是MM,最右侧是MM,中间存在MMM)

每个机柜要一个电箱,而每有一个MIM结构,都可以少用一个电箱

(不知道有没有逻辑漏洞,可以打些示例检验一下)


jifang=input()
if len(jifang)==1:
print(-1)
elif jifang[0:2]=='MM' or jifang[-2:0]=='MM' or 'MMM' in jifang:
print(-1)
else:
count=jifang.count('M')-jifang.count('MIM')
print(count)

 类似资料: