华为2017上机题(北京优招)

挑大写字符

华为2017上机题(北京优招)_第1张图片
解题思路
水题

import java.util.Scanner;

public class Main{
    public static void main(String[]args){
        Scanner cin=new Scanner(System.in);
        while(cin.hasNext()){
            String str=cin.nextLine();
            StringBuilder res=new StringBuilder("");
            int n=str.length();
            for(int i=0;ichar tmp=str.charAt(i);
                if(tmp==' '||(tmp>='A'&&tmp<='Z'))res.append(String.valueOf(tmp));
            }
            System.out.println(res.toString());
        }
    }
}

剩余的文件数

华为2017上机题(北京优招)_第2张图片
解题思路
水题
注意:如果摘除的文件数大于当前的文件数,则将当前的文件全部摘除。

import java.util.Scanner;

public class Main{
    public static void main(String[]args){
        Scanner cin=new Scanner(System.in);
        int res=0;
        while(cin.hasNext()){
            String str=cin.next();
            if(str.equals("end")){
                System.out.println("current "+res);
                res=0;
                continue;
            }
            int num=cin.nextInt();
            if(str.equals("binding"))res+=num;
            if(str.equals("remove"))res-=num;
            if(res<0)res=0;
        }
    }
}

定时器

华为2017上机题(北京优招)_第3张图片
解题思路
直接模拟吧。。。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class Main{
    public static void main(String[]args){
        Scanner cin=new Scanner(System.in);
        int res=0;
        int ans=0;
        Mapid=new HashMap();
        Mapstart=new HashMap();
        Maporder=new TreeMap();
        while(cin.hasNext()){
            String str=cin.next();
            if(str.equals("end")){
                boolean flag=false;
                for(int i=0;iint idx=order.get(i);
                    if(idx==-1)continue;
                    int time=id.get(idx);
                    if(time>0){
                        flag=true;
                        System.out.println("timer:"+idx+","+(time));
                    }
                }
                if(!flag)System.out.println("none");
                res=0;
                ans=0;
                id=new HashMap();
                order=new HashMap();
                start=new HashMap();
                continue;
            }
            char a=str.charAt(0);
            if(a=='e'){
                int t=Integer.parseInt(str.substring(7));
                for(int idx:id.keySet()){
                    int time=id.get(idx);
                    id.put(idx, time-t);
                    if(time-t<=0){
                        int ord=start.get(idx);
                        order.put(ord, -1);
                    }
                }
                //System.out.println("x"+Integer.parseInt(str.substring(7)));
            }else if(a=='s'){
                if(str.charAt(2)=='o'){
                    int idx=Integer.parseInt(str.substring(10));
                    //System.out.println("y"+idx);
                    if(id.containsKey(idx)){
                        id.put(idx, -1);
                        int ord=start.get(idx);
                        order.put(ord, -1);

                    }
                }else{
                    String[] s=str.substring(11).split(",");
                    int idx=Integer.parseInt(s[0]);
                    int time=Integer.parseInt(s[1]);
                    //System.out.println("z"+idx+" "+time);
                    id.put(idx, time);
                    start.put(idx, ans);
                    order.put(ans, idx);
                    ans++;
                }
            }
        }
    }
}

你可能感兴趣的:(笔试题,coding,way)