5键键盘输出

  • 【5键键盘的输出】有一个特殊的 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这两个有输出功能的键会先清空选择的字母,再进行输出
  • 给定一系列键盘输入,输出最终屏幕上字母的数量。
  • 输入描述:
  • 输入为一行,为简化解析,用数字 12345代表 a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五个键的输入,数字用空格分隔
  • 输出描述:
  • 输出一个数字,为最终屏目上字母的数量。
public void answer(String str){
        String[] splitArr = str.split("");
        List<Integer> list = new ArrayList<>();
        List<Integer> tempList = new ArrayList<>();
        boolean flag = false;
        for (String s : splitArr) {
            switch (s) {
                //a
                case "1":
                    list.add(1);
                    break;
                //ctrl c
                case "2":
                    if (flag) {
                        tempList = ctrlC(list);
                        flag = false;
                    }
                    break;
                //ctrl x
                case "3":
                    if (flag) {
                        tempList = ctrlX(list);
                        flag = false;
                    }
                    break;
                //ctrl v
                case "4":
                    ctrlV(list, tempList);
                    break;
                //ctrl a
                case "5":
                    flag = ctrlA();
            }
        }
        System.out.println(list.size());

    }
	//这里的几个方法其实没啥必要,直接把方法的内容放到上面的case里也可以
    public boolean ctrlA(){
        return true;
    }
    public List<Integer> ctrlC(List<Integer> list){
        return new ArrayList<>(list);
    }
    public void ctrlV(List<Integer> list, List<Integer> cList){
        list.addAll(cList);
    }
    public List<Integer> ctrlX(List<Integer> list){
        List<Integer> xList = new ArrayList<>(list);
        list.clear();
        return xList;
    }

全部评论

相关推荐

面了100年面试不知...:头像换成柯南再试试
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务