模拟键盘输出
有一个特殊的5建键盘,上面有a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五个键
a键在屏幕上输入一个字母a;ctrl-c将当前选择的字母复制到剪贴板;ctrl-x将当前选择的字母复制到剪贴板,并清空选择的字母;
ctrl-v将当前剪贴板里的字母输出到屏幕;ctrl-a选择当前屏幕上的所有字母。
注意:
1、剪贴板初始为空,新的内容被复制到剪贴板时会覆盖原来的内容
2、当屏幕上没有字母时,ctrl-a无效
3、当没有选择字母时,ctrl-c和ctrl-x无效
4、当有字母被选择时,a和ctrl-v这两个有输出功能的键会先清空选择的字母,在进行输出。
给定一系列键盘输入,输出最终屏幕上字母的数量。
输入描述:
输入为一行,为简化解析,用数组1,2,3,4,5代表a,ctrl-c,ctrl-x,ctrl-v,ctrl-a 五个键的输入,数字用空格分隔
输出描述:
输出一个数字,为最终屏幕上字母的数量
示例1:
1 1 1
输出
3
示例2
1 1 5 1 5 2 4 4
输出:
2
let arr = [1,1,5,1,5,2,4,4]
let count = 0
let selectCount = 0
let copyCount = 0
function test(arr) {
for(let i of arr){
console.log(i);
switch (i){
case 1:
count = selectCount>0?1:count+1
selectCount = 0
break
case 2:
copyCount = selectCount
break
case 3:
count -= selectCount;
copyCount = selectCount
count = 0
break
case 4:
count -= selectCount
selectCount = 0
count += copyCount
break
case 5:
selectCount = count
break
}
}
console.log(count);
}
test(arr)
机试题 文章被收录于专栏
某机试题,网上很少用js写的答案只有自己写了