JavaScript实现简易电梯:Codewars编程挑战求解
电梯控制编程题解决方案
嘿,我来帮你搞定Codewars上这个电梯控制的编程题!先把咱们要解决的问题掰扯清楚:
需求梳理
- 电梯的有效运行楼层:0、1、2、3(0是底层,3是顶层)
- 用户按下的有效按钮:字符串类型的
'0'、'1'、'2'、'3' - 程序返回值:电梯需要移动的相对数值,范围是
-3、-2、-1、0、1、2、3(正数代表上行,负数代表下行,0代表不用动)
核心逻辑
其实这个问题的本质就是计算目标楼层与当前楼层的差值:
- 把用户按下的按钮字符串转换成整数类型的目标楼层
- 用「目标楼层 - 当前楼层」得到的结果就是要返回的值
这个逻辑完全覆盖了所有情况:
- 当电梯在底层(0层),用户按
'3':3 - 0 = 3,返回3(正确,上行3层) - 当电梯在顶层(3层),用户按
'0':0 - 3 = -3,返回-3(正确,下行3层) - 当电梯和目标楼层一致时,返回0(比如当前在1层,用户按
'1')
代码实现(以Python为例)
def elevator(current_floor, button_pressed): # 把按钮字符串转成整数目标楼层 target_floor = int(button_pressed) # 返回目标与当前楼层的差值 return target_floor - current_floor
测试用例验证
咱们跑几个典型例子确认下:
- 输入:
current_floor=0, button_pressed='3'→ 返回3 - 输入:
current_floor=3, button_pressed='0'→ 返回-3 - 输入:
current_floor=1, button_pressed='1'→ 返回0 - 输入:
current_floor=2, button_pressed='0'→ 返回-2
如果题目还有额外的隐藏规则(比如电梯需要优先处理同方向请求之类的),你可以补充更多细节,我再帮你调整方案~
内容的提问来源于stack exchange,提问作者Oluwaseyi Sarumi
相关产品推荐
相关产品推荐

