笔试请教

大佬求教,信也科技笔试第一题感觉是一个简单的求日期是一年的第几天,但就是只过了20%,有没有大佬帮忙看看哪里出问题了qvq




public class XingYe0922 {


    public int dateArraysSum(String[] dates) {
        // write code here
        int ans = 0;
        if (dates.length == 0 || dates == null) {
            return 0;
        }

//            Arrays.sort(dates, new Comparator<String>() {
//                @Override
//                public int compare(String o1, String o2) {
//
//                    return Integer.parseInt(o1.split(" ")[2])-Integer.parseInt(o2.split(" ")[2]);
//                }
//            });
        for (int i = 0; i < dates.length; i++) {
            if (i > 0 && dates[i].equals(dates[i - 1])) continue;
            ans += helper(dates[i]);
        }
        return ans;
    }

    public int helper(String s) {
        int ans = 0;
        int m1 = 30, m2 = 31, feb = 0;
        String[] str = s.split(" ");
        String year = str[2];
        String month = str[1];
        String day = str[0];
        if (Integer.parseInt(year) % 400 == 0 || Integer.parseInt(year) % 4 == 0 && Integer.parseInt(year) % 100 != 0) {
            feb = 29;
        } else {
            feb = 28;
        }
        int m = 0;
        if (month.equals("Jan")) m = 1;
        else if (month.equals("Feb")) m = 2;
        else if (month.equals("Mar")) m = 3;
        else if (month.equals("Apr")) m = 4;
        else if (month.equals("May")) m = 5;
        else if (month.equals("Jun")) m = 6;
        else if (month.equals("Jul")) m = 7;
        else if (month.equals("Aug")) m = 8;
        else if (month.equals("Sep")) m = 9;
        else if (month.equals("Oct")) m = 10;
        else if (month.equals("Nov")) m = 11;
        else if (month.equals("Dec")) m = 12;
        int d = 0;
        int index = 0;
        String day2 = "";
        while (s.charAt(index) <= '9' && s.charAt(index) >= '0' && index < day.length()) {
            day2 += s.charAt(index);
            index++;
        }
        d = Integer.parseInt(day2);
        switch (m - 1) {
            case 11:
                ans += m2;
            case 10:
                ans += m1;
            case 9:
                ans += m2;
            case 8:
                ans += m1;
            case 7:
                ans += m1;
            case 6:
                ans += m2;
            case 5:
                ans += m1;
            case 4:
                ans += m2;
            case 3:
                ans += m1;
            case 2:
                ans += feb;
            case 1:
                ans += m1;
            case 0:
                ans += d;
                break;
        }
        return ans;
    }

}

#笔试#
全部评论
第二题巨坑,里面的字符串是带引号的,直接给我弄麻了
点赞 回复 分享
发布于 2022-09-23 20:34 辽宁
你这个是因为switch里边的m1和m2加反了,m1和m2初始值换一下应该就没问题了。再加上去重。
点赞 回复 分享
发布于 2022-09-23 20:28 辽宁
判断重复有问题啊,
点赞 回复 分享
发布于 2022-09-23 10:14 江西
我思路也是这样 也是20% 蹲下大佬的思路
点赞 回复 分享
发布于 2022-09-23 08:10 甘肃

相关推荐

面试官全程关摄像头1.自我介绍一下2.React和Vue哪个更熟悉一点3.你在之前那段实习经历中有没有什么技术性的突破(我只是实习了44天工作28天,我把我能说的都说了)4.你封装的哪个表单组件支不支持动态传值5.自己在实习阶段Vue3项目封装过hook吗6.hook有什么作用7.Vue2和Vue3的响应式区别(我说一个是proxy是拦截所有的底层操作,Object.defineProperty本身就是一个底层操作,有些东西拦截不了,比如数组的一些操作还有等等,面试官就说实在要拦截能不能拦截????我心想肯定不行呀,他的底层机制就不允许吧)8.pinia和vuex的区别(这个回答不出来是我太久没用了)9.pinia和zustand的区别,怎么选(直接给我干懵了)(我说react能用pinia吗&nbsp;&nbsp;他说要用的话也可以)10.渲染一万条数据,怎么解决页面卡顿问题(我说分页、监听滚轮动态加载,纯数据展示好像还可以用canvas画)(估计是没说虚拟表单,感觉不满意)11.type和interface的区别12.ts的泛型有哪些作用(我就说了一个结构相同但是类型不同的时候可以用,比如请求响应的接口,每次的data不同,这里能用一个泛型,他问我还有什么)13.你项目用的是React,如果让你再写一遍你会选择什么14.pnpm、npm、yarn的区别15.dependencies和devdependencies的区别总而言之太久没面试了,上一段实习的面试js问了很多。结果这次js一点没问,网络方面也没考,表现得很一般,但是知道自己的问题了&nbsp;&nbsp;好好准备,等待明天的影石360和周四的腾讯了&nbsp;&nbsp;加油!!!
解zj:大三的第一段面试居然是这样的结局
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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