模拟键盘输出

有一个特殊的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写的答案只有自己写了

全部评论
case 3的最后一句应该是selectcount=0吧
点赞 回复 分享
发布于 2022-08-03 17:17

相关推荐

不愿透露姓名的神秘牛友
01-09 15:20
腾讯给员工发甘蔗,乍一看是要去攻打字节吗?
天秤slam:排队等着挨削
投递字节跳动等公司8个岗位 >
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务