第一题 import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        int n = in.nextInt();        int[] S = new int[n];        HashMap<Integer,List<Integer>> map = new HashMap<>();        for(int i=0;i<n;i++)        {            S[i] = in.nextInt();            map.computeIfAbsent(S[i],k->new ArrayList<>());            map.get(S[i]).add(i);        }        int t = in.nextInt();        List<Integer> list = map.get(t);                int begin = -1;        int end = -1;        if(list==null){            System.out.print(begin+" "+end);            return;        }        int last = list.get(0);        for(int i=1;i<list.size();i++){            int num = list.get(i);            if(num!=last+1){                begin = num;                end = last;                System.out.print(begin+" "+end);                return;            }            last = num;        }        begin = list.get(0);        end = list.get(list.size()-1);        System.out.print(begin+" "+end);    }}第二题bfs,代码丢了第三题 通过用例97%,剩余用例cpu错误import java.util.*;public class Main {    static HashMap<String,Long> vars = new HashMap<>();    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        while(in.hasNextLine()){            String line = in.nextLine();            if(line.charAt(0)=='l'){                handleDefine(line);            }            if(line.charAt(0)=='o'){                handleOut(line);            }        }    }    static int mark;    static int state;    public static void handleOut(String line){        mark = 4;        StringBuilder varNameBuilder = new StringBuilder();        if(!checkVarName(line.charAt(mark))||('0'<=line.charAt(mark)&&line.charAt(mark)<='9')){            System.out.println("<syntax-error>");            return;        }        while(mark<line.length()&&checkVarName(line.charAt(mark))){            varNameBuilder.append(line.charAt(mark));            mark++;        }        String varName = varNameBuilder.toString();        if(vars.get(varName)==null){            System.out.println("<undefined>");        }else if(vars.get(varName)>Integer.MAX_VALUE){            System.out.println("<overflow>");        }else if(vars.get(varName)<Integer.MIN_VALUE){            System.out.println("<underflow>");        }else{            System.out.println(vars.get(varName));        }    }    public static void handleDefine(String line){        mark = 4;        state = 0;        StringBuilder varNameBuilder = new StringBuilder();        if(!checkVarName(line.charAt(mark))||('0'<=line.charAt(mark)&&line.charAt(mark)<='9')){            System.out.println("<syntax-error>");            return;        }        while(mark<line.length()&&checkVarName(line.charAt(mark))){            varNameBuilder.append(line.charAt(mark));            mark++;        }        if(mark<line.length()&&(line.charAt(mark)!=' '&&line.charAt(mark)!='=')){            System.out.println("<syntax-error>");            return;        }        String varName = varNameBuilder.toString();        skipSpace(line);        mark++;        skipSpace(line);        long res = handleCount(line);        if(state==0) {            vars.put(varName, res);        }    }    public static long handleCount(String line){        long res = getVarOrInteger(line);        if(state==-1) return 0;        while (mark<line.length()){            skipSpace(line);            char c = line.charAt(mark);            switch (c){                case '+':{                    mark++;                    skipSpace(line);                    res += getVarOrInteger(line);                    if(state==-1) return 0;                    break;                }                case '-':{                    mark++;                    skipSpace(line);                    res -= getVarOrInteger(line);                    break;                }                case '*':{                    mark++;                    skipSpace(line);                    res *= getVarOrInteger(line);                    break;                }                case '/':{                    mark++;                    skipSpace(line);                    res /= getVarOrInteger(line);                    break;                }            }            skipSpace(line);        }        return res;    }    public static long getVarOrInteger(String line){        StringBuilder varBuilder = new StringBuilder();        boolean beginByInt =false;        if(!checkVarName(line.charAt(mark))){            if(line.charAt(mark)!='-'){                System.out.println("<syntax-error>");                state = -1;                return 0;            }        }        if('0'<=line.charAt(mark)&&line.charAt(mark)<='9'){            beginByInt = true;        }        while(mark<line.length()&&checkVarName(line.charAt(mark))){            varBuilder.append(line.charAt(mark));            mark++;        }        if(varBuilder.length()==0) return 0;        long res = 0;        String var = varBuilder.toString();        try{            res = Long.parseLong(var);        }catch (Exception e){            if(beginByInt){                System.out.println("<syntax-error>");                state = -1;                return 0;            }            if(vars.get(var)!=null){                res = vars.get(var);            }else{                state = -1;                return res;            }        }        return res;    }    public static boolean checkVarName(char c){        if(('a'<=c&&c<='z')||'A'<=c&&c<='Z'){            return true;        }        if('0'<=c&&c<='9') return true;        return c == '_';    }    public static void skipSpace(String line){        while(mark<line.length()&&line.charAt(mark)==' ') mark++;    }}
点赞 15
评论 11
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:51
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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