【2025春招真题改编】03.07-饿了么春招-开发岗

✅ 春招备战指南 ✅

💡 学习建议:

  • 先尝试独立解题(建议用时:90分钟/套)
  • 对照解析查漏补缺
  • 配套练习题库

互联网必备刷题宝典🔗

1️⃣:统计 01 串中 0 和 1 的个数,通过计算可能的交换方式确定不同字符串数量

2️⃣:使用模板匹配技术识别验证码图片中的"#"符号分布模式

3️⃣:构建字典树(Trie)优化异或查询,实现高效的数字黑板游戏

整体难度

这套题目整体难度适中,由简到难逐步递进:

  • 第一题是基础的计数问题,需要理解交换操作的特性
  • 第二题是模式识别问题,需要实现模板匹配
  • 第三题是高级数据结构应用,需要熟悉字典树和位运算

alt

01. 小基的拼图游戏

题目内容

小基是密码学研究中心的一名研究员,她正在研究一种新的字符串变换方法。她有一个由字符"0"和"1"组成的二进制字符串 。研究过程中,小基需要对这个字符串进行一次且仅一次的基本变换操作:

选择两个不同的位置 (其中 ),交换这两个位置上的字符

小基想知道,通过所有可能的一次变换操作,最多能生成多少个不同的字符串?

输入描述

一个仅由字符"0"和"1"构成的字符串

输出描述

一个整数,表示通过一次变换操作能生成的不同字符串的数量。

样例1

输入:

1100

输出:

5

题解

这道题目要求计算通过一次交换操作能得到多少个不同的字符串。

分析交换操作的特性:

  • 交换相同字符(两个 0 或两个 1):字符串保持不变。
  • 交换不同字符(一个 0 和一个 1):会得到一个新的字符串。

解题思路是统计字符串中 0 和 1 的个数,分别记为

可以选择的 0 和 1 的交换方式有 种,每种交换都会产生一个不同的字符串。

另外,如果存在至少两个相同字符(),交换这两个相同字符后,字符串保持不变,这种情况也应算作一种结果。

因此,答案是 (如果 ,则再加 1)。

算法的时间复杂度是 ,其中 是字符串的长度,主要用于统计 0 和 1 的个数。空间复杂度是 ,只需要常数级的额外空间。

对于题目给出的样例"1100",其中有 2 个 0 和 2 个 1,所以答案是

三语言参考代码

  • Cpp
#include <iostream>
#include <string>
using namespace std;

int main() {
    // 优化输入输出
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    string s;
    cin >> s;
    
    // 计数0和1的数量
    long long num0 = 0, num1 = 0;
    for (char ch : s) {
        if (ch == '0') num0++;
        else num1++;
    }
    
    // 计算结果
    long long res = num0 * num1;
    // 如果有至少两个相同字符,可以交换它们得到相同字符串
    if (num0 >= 2 || num1 >= 2) res++;
    
    cout << res << "\n";
    return 0;
}
  • Python
import sys
input = lambda:sys.stdin.readline().strip()

# 读取输入的01串
s = input()

# 统计0和1的个数
dig0 = s.count('0')
dig1 = s.count('1')

# 计算结果
ans = dig0 * dig1
# 如果有至少两个相同字符,交换后字符串不变,也算一种结果
if dig0 >= 2 or dig1 >= 2:
    ans += 1

# 输出结果
print(ans)
  • Java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        // 读取输入的01串
        String s = scan.next();
        
        // 统计0和1的个数
        long zCnt = 0, oCnt = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '0') zCnt++;
            else oCnt++;
        }
        
        // 计算不同字符交换的结果数
        long res = zCnt * oCnt;
        
        // 如果存在至少两个相同字符,交换它们后字符串不变,也算一种结果
        if (zCnt >= 2 || oCnt >= 2) res++;
        
        // 输出结果
        System.out.println(res);
        scan.close();
    }
}

02. 小柯的智能验证系统

题目内容

小柯是一家科技公司的安全专家,为了解决日益严重的机器人自动注册问题,她设计了一种创新的图像验证码系统。

这个系统的核心思想是:在 5×5 的网格中同时放置特殊符号"#"和数字(0-9)。真正的验证码信息隐藏在"#"符号的分布模式中,而数字只是用来干扰机器人识别。

每个数字(0-9)在 5×5 网格中都有唯一的"#"符号排列模式:

例如数字 5 的模式如下:

#...#
#.###
#...#
###.#
#...#

系统可能在非"#"的位置随机填入 0-9 的数字,但这些数字对于验证码的正确识别没有意义,例如:

#222#
#2###
#232#
###2#
#272#

这张图片中的"#"符号排列模式正好代表数字 5。

现在,小柯向你提供了 张验证码图片,请你识别出每张图片代表的真实数字,并按顺序输出这些数字组成的验证码。

输入描述

第一行一个整数 ),表示验证码图片的数量。

接下来 行,每 5 行描述一张 5×5 的验证码图片。图片中只包含字符"#"和数字 0-9。

输出描述

一个整数,表示所有验证码图片按顺序识别出的数字组成的结果。

样例1

输入:

1
#222#
#2###
#232#
###2#
#272#

输出:

5

样例2

输入:

2
#222#
#2###
#232#
###2#
#272#
##1##
##1##
##1##
##1##
##1##

输出:

51

题解

这道题目的核心是模式识别问题。需要识别 5×5 网格中"#"符号的分布模式,忽略其中的数字干扰,从而判断每张图片代表的实际数字。

首先,定义每个数字 0-9 对应的"#"符号模式。这些模式可以硬编码在程序中,作为识别的基准。每个数字都有唯一的 5×5 模式,比如数字 5 的模式如题目所示。

解题步骤:

  1. 初始化模板:定义 0-9 十个数字的"#"符号分布模式。每个模式是一个 5×5 的网格,其中"#"表示该位置应该有特殊符号,"."表示该位置可以是任何数字或空白。

  2. 读取输入:读取 及接下来的 行图片数据,每 5 行构成一张图片。

  3. 预处理图片:对每张图片进行预处理,将所有数字字符替换为".",保留"#"符号。这样处理后的图片就只包含模式信息。

  4. 模式匹配:将处理后的图片与预定义的 10 个数字模板进行比对。如果某个模板与图片完全匹配,那么这张图片就代表对应的数字。

  5. 组合结果:按顺序将识别出的数字组合起来,得到最终的验证码。

处理 张图片,每张图片需要与 10 个模板进行比对,每次比对需要检查 5×5=25 个位置,因此总的时间复杂度是 。对于 的数据范围来说,这个复杂度是完全可接受的。

难点在于正确定义各个数字的模板,以及准确地进行模式匹配。

三语言参考代码

  • Cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    // 优化输入输出
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int m;
    cin >> m;  // 读入图片数量
    
    // 定义0-9各数字对应的模板
    vector<vector<string>> mods(10, vector<string>(5));
    
    // 初始化各数字模板
    mods[0] = {
        "#...#",
        "#.#.#",
        "#.#.#",
        "#.#.#",
        "#...#"
    };
    mods[1] = {
        "##.##",
        "##.##",
        "##.##",
        "##.##",
        "##.##"
    };
    mods[2] = {
        "#...#",
        "###.#",
        "#...#",
        "#.###",
        "#...#"
    };
    mods[3] = {
        "#...#",
        "###.#",
        "#...#",
        "###.#",
        "#...#"
    };
    mods[4] = {
        "#.#.#",
        "#.#.#",
        "#...#",
        "###.#",
        "###.#"
    };
    mods[5] = {
        "#...#",
        "#.###",
        "#...#",
        "###.#",
        "#...#"
    };
    mods[6] = {
        "#...#",
        "#.###",
        "#...#",
        "#.#.#",
        "#...#"
    };
    mods[7] = {
        "#...#",
        "###.#",
        "###.#",
        "###.#",
        "###.#"
    };
    mods[8] = {
        "#...#",
        "#.#.#",
        "#...#",
        "#.#.#",
        "#...#"
    };
    mods[9] = {
        "#...#",
        "#.#.#",
        "#...#",
        "###.#",
        "#...#"
    };
    
    // 读取所有图片
    vector<vector<string>> pics(m, vector<string>(5));
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < 5; j++) {
            cin >> pics[i][j];
        }
    }
    
    string res;
    res.reserve(m);
    
    // 处理每张图片
    for (int i = 0; i < m; i++) {
        // 将数字替换为'.'
        vector<string> image = pics[i];
        for (int r = 0; r < 5; r++) {
            for (int c = 0; c < 5; c++) {
                if (isdigit(image[r][c])) {
                    image[r][c] = '.';
                }
            }
        }
        
        // 与模板匹配
        int digit = -1;
        for (int d = 0; d < 10; d++) {
            bool same = true;
            for (int r = 0; r < 5; r++) {
                if (image[r] != mods[d][r]) {
                    same = false;
                    break;
                }
            }
            if (same) {
                digit = d;
                break;
            }
        }
        
        // 添加识别结果
        res.push_back('0' + digit);
    }
    
    // 输出结果
    cout << res << "\n";
    return 0;
}
  • Python
import sys
input = lambda:sys.stdin.readline().strip()

def main():
    # 读入图片数量
    m = int(input())
    
    # 定义0-9各数字对应的模板
    # 其中'#'表示特殊符号,'.'表示可以是任何数字
    tpl_list = [
        [  # 数字0的模板
            "#...#",
            "#.#.#",
            "#.#.#",
            "#.#.#",
            "#...#"
        ],
        [  # 数字1的模板
            "##.##",
            "##.##",
            "##.##",
            "##.##",
            "##.##"
        ],
        [  # 数字2的模板
            "#...#",
            "###.#",
            "#...#",
            "#.###",
            "#...#"
        ],
        [  # 数字3的模板
            "#...#",
            "###.#",
            "#...#",
            "###.#",
            "#...#"
        ],
        [  # 数字4的模板
            "#.#.#",
            "#.#.#",
            "#...#",
            "###.#",
            "###.#"
        ],
        [  # 数字5的模板
            "#...#",
            "#.###",
            "#...#",
            "###.#",
            "#...#"
        ],
        [  # 数字6的模板
            "#...#",
            "#.###",
            "#...#",
            "#.#.#",
            "#...#"
        ],
        [  # 数字7的模板
            "#...#",
            "###.#",
            "###.#",
            "###.#",
            "###.#"
        ],
        [  # 数字8的模板
            "#...#",
            "#.#.#",
            "#...#",
            "#.#.#",
            "#...#"
        ],
        [  # 数字9的模板
            "#...#",
            "#.#.#",
            "#...#",
            "###.#",
            "#...#"
        ]

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

互联网刷题笔试宝典 文章被收录于专栏

互联网刷题笔试宝典,这里涵盖了市面上大部分的笔试题合集,希望助大家春秋招一臂之力

全部评论

相关推荐

总结:面了一个小时,前半段问项目,后半段问八股,两道编程题。面试官很热情,介绍了半天他们的业务,像是在汇报哈哈哈哈。八股部分1.单例模式有用过吗,怎么实现的(不知道怎么实现)回答:用得比较多的地方是数据库连接池,全局只能有一个连接池,并且提供全局访问。以下是搜索结果:有五种经典的实现方式。第一种是饿汉式(线程安全)他在类加载的时候就立即初始化实例,使用场景是实例占用资源少,且频繁使用。第二种是懒汉式(非线程安全)延迟初始化,在使用的时候,如果没有这个实例才初始化,在多线程环境下会创建多个实例。第三种是线程安全懒汉式,通过synchronized保证线程安全,但性能差。(因为锁的粒度很粗)不建议高频调用。第四种是双重检查锁(DCL)。特点是延迟初始化,并且线程安全第五种是静态内部类(推荐)。特点是利用类加载机制保证线程安全,延迟初始化且无锁。2.JVM运行时数据区回答:有堆,栈,方法区。堆存储对象实例,数组;栈存储线程的调用栈帧;方法去存储对象信息和方法信息。3.事务ACID了解吗回答:原子性,持久性,一致性,隔离性。1.原子性由undolog实现2.隔离性由锁或者MVCC实现(吟唱一下隔离性的四个级别)3.持久性由redolog实现4.一致性由前三者一起保证实现。场景业务题1.在一个发优惠券的场景,我有一个10w行的用户数据表,要取出里面的用户信息放入模型中,返回优惠券的结果,(模拟用户领券的过程)。我需要做的是,验证这些数据是否满足一定的断言(例如面额超过50块,补贴力度过大)。由于一台机器的内存不足以存放这些数据,你有四台机器,请你设计一个批量请求的工具,以分布式的方式去跑这些数据,你会做那些设计?回答:我也没听太懂这些问题。以下是搜索结果。我将设计一个分布式批量处理工具来解决发券场景中的大数据验证问题,核心目标是实现高效分片处理、动态负载均衡、分布式断言校验和结果聚合。以下是详细设计方案:整体架构设计核心组件设计1.分布式协调器(Coordinator)部署在Master节点,负责全局调度2.工作节点(Worker)部署在4台工作机器,负责实际处理3.断言验证引擎该设计可实现10w用户数据的分布式处理,核心优势:1.&nbsp;横向扩展&nbsp;:通过增加Worker节点可线性提升处理能力2.&nbsp;故障容忍&nbsp;:自动重试和检查点机制保证可靠性3.&nbsp;资源优化&nbsp;:流式处理避免内存溢出4.&nbsp;实时监控&nbsp;:全过程可视化跟踪2.饿了么的搜索功能,请你针对这个搜索功能写一些功能点。比如输入奶茶关键词,返回一些结果。回答:我只回答了搜索框不能为空,对返回结果进行排序等等。以下是搜索结果。1.搜索前引导功能a.热词推荐i.功能描述:搜索框下方动态展示当前商圈热门关键词(如奶茶,果茶)ii.奶茶示例:用户点击奶茶热词,直接跳转到相关商品列表页b.历史搜索i.功能描述&nbsp;:根据用户过往搜索记录(如“芋泥奶茶”)生成个性化推荐。ii.数据支撑&nbsp;:历史搜索订单转化率仅次于商家直达c.场景化引导i.功能描述​:分时段(早餐/下午茶)推送关联词(如下午茶时段优先显示“奶茶+甜品”组合)。d.语音/图像搜索i.​功能描述​:支持语音输入“奶茶”或拍摄奶茶图片触发搜索,系统自动转文字并匹配商品。2.关键词处理功能a.​智能纠错与联想​i.功能描述​:自动纠正拼写错误(如“奶车→奶茶”),并联想高频词(如“奶茶→珍珠奶茶”“芝士奶盖”)。ii.技术实现​:基于搜索日志构建纠错词库与拼音转换模型b.​同义词与品类扩展​i.​功能描述​:搜索“奶茶”时同步召回“果茶”“乳茶”等同品类商品。c.​意图识别​d.​功能描述​:i.若用户多次搜索“低卡奶茶”,优先展示低糖商品;ii.若搜索“奶茶+外卖速度”,则突出配送时效快的商家。3.搜索结果展示功能a.​多维度排序​i.​排序逻辑​:综合销量(70%)、评分(20%)、配送速度(10%)等权重生成列表。ii.​奶茶示例​:高销量“喜茶”排列在低销量小众品牌前。b.​分层筛选器​i.​筛选条件​:ii.价格区间(如“10-20元”);iii.口味(“芋泥”“黑糖”);iv.商家服务(“免配送费”“会员折扣”)。c.​商家直达与商品级搜索​i.​功能描述​:ii.输入“奈雪の茶”直接进入店铺页;iii.搜索“霸气葡萄”显示该单品而非全店商品。d.​商业化融合​i.​功能描述​:在结果页插入“奶茶排行榜”或限时优惠活动(如“第二杯半价”)。4.搜索后优化功能a.​个性化结果缓存​i.​功能描述​:用户多次搜索“奶茶”后,首页历史搜索栏固定显示该关键词。b.​搜索分析看板​c.​后台功能​:统计“奶茶”搜索量、点击率、转化率,指导商家优化菜品命名(如将“红茶拿铁”改为“鸳鸯奶茶”)。3.测试人员除了写测试用例之外,还要做那些事情?1.会参与需求的分析与测试策略制定a.&nbsp;参与需求评审会议,分析需求的可测试性b.&nbsp;指定测试计划2.测试设计和用例开发a.测试场景建模b.测试用例编写3.测试执行与缺陷管理a.分层测试实施(单元,集成,系统测试)b.缺陷全生命周期管理4.质量评估与报告输出a.质量指标分析b.测试报告编制5.自动化测试实施a.接口自动化b.UI自动化6.跨团队协作a.开发写作b.产品沟通7.测试过程改进8.技术研究与创新笔试题1.SQL题目:用sql找出不同课程的成绩的第二名和第三名WITH&nbsp;RankedScores&nbsp;AS&nbsp;(SELECTstudent_id,course_id,score,RANK()&nbsp;OVER&nbsp;(PARTITION&nbsp;BY&nbsp;course_id&nbsp;ORDER&nbsp;BY&nbsp;score&nbsp;DESC)&nbsp;AS&nbsp;rankFROM&nbsp;scores)SELECTcourse_id,student_id,score,rankFROM&nbsp;RankedScoresWHERE&nbsp;rank&nbsp;IN&nbsp;(2,&nbsp;3)ORDER&nbsp;BY&nbsp;course_id,&nbsp;rank;2.LeetCode梦的开始:两数之和反问环节1.你们的业务内容回答:主要负责搜索功能和营销功能,搜索就是饿了么的搜索框部分,营销主要负责爆红包等等。日常还要做一些系统的压力测试,以及与其他团队一起做集成测试。年度还会做测试平台开发,质量和效率提升的OKR。2.工作节奏回答:9点半上班,周一到周四可能下班晚一点,周五正常6点下班,周末双休。3.开发技术栈回答:主要是Java
查看11道真题和解析
点赞 评论 收藏
分享
05-30 19:03
门头沟学院 Java
4.17投的简历4.30约我一面5.8一面Redis实现Session共享的延伸:如果用的是本地缓存,如何实现数据一致性?会有什么问题?Redis的RDB持久化和AOF持久化Mysql什么能保证数据崩溃重启不丢失?Mysql的binlog日志Redis的Cache&nbsp;Aside&nbsp;Pattern和Read/Write&nbsp;Through&nbsp;Pattern缓存穿透的解决如何实现视频的点赞取消,判断用户是否点赞,点赞的次数(Redis)如果不使用设计模式是否可以?设计模式是为了干嘛的?TCP四次挥手(如果存在用命令查到,系统中存在大量Close&nbsp;wait状态,是因为什么?)双亲委派模型(大体上是这些,其他的有些忘了)是否有offer了?反问:有什么可以改进的地方?接下来还有几轮面试?代码题:在保证线程并发安全的情况下,并发读取多个文件的字符串,并且合并统计出现次数,确保5秒的超时时间。面试官人很好,会一直提示你,并且出的题都是根据场景来的,我最后代码题,有一点点没写出来的代码,面试官也帮我点出来了。也是经过两周hr给我打电话说部门没hc了,意料之内,情理之中复活换了个部门进行二面,5.23二面,一共1小时15分钟左右二面全程拷打项目,我写的是点评加12306,不过本人写了两段大数据开发的实习经历(没问)面试官问,我一边回想一边说自己做了什么项目改进3天后告知2面通过,约了5.29进行3面5.29三面发现是TL和HR一起面的,TL拷打我项目几个问题,&nbsp;我记得最深刻的一个是我用lua脚本代替分布式锁来进行抢单,lua脚本好在哪里?没回答中点,擦边回答了,最抽象的是hr换岗之后没跟我说部门是哪里的(不是三面的hr),然后他问我知道公司在哪里么,我回答了一堆意向杭州的话,听到他们说北京的时候有点红温了,赶紧圆了一下。反问:培养方案是否有机会转正进去负责的业务5.30&nbsp;oc,感觉几个月以来的付出都有了回报,这几个月都看着大佬们的oc非常羡慕,终于自己也等来了收获,来此还愿,积攒人品,我希望大家在周围人都oc,坚持不下去的时候都咬牙坚持下来,别放弃自己,越痛苦沉重的时候,越要学习,机会来临的时候,很可能只有这一次,请把握住!
查看17道真题和解析
点赞 评论 收藏
分享
06-18 21:31
已编辑
南京航空航天大学 Java
总结:一共半小时,比想象中要长,问了比较多场景题,&nbsp;面试风格和技术面完全不同。提问环节1.你能否先做一个自我介绍,开始今天的面试?2.你的求职意向中,是否考虑除了网络安全方向外,还会考虑java后端、测试开发等其他岗位?3.问:你是否已经确定要去做测试开发方向的工作,还是同步考虑后端岗位?答:我认为都可以考虑,现在还没有限制得很死,还在探索阶段。4.问:你在找实习时,除了测开岗位外,是否也投递了一些后端岗位?答:其实都有在投递,不会限制得很死,前端后端都会考虑。5.问:你目前是否拿到较为满意的offer,为什么可能会优先考虑我们公司?答:确还有一些offer在流程中,我对贵公司的价值观比较认同,所以可能会优先考虑。6.问:能否分享一个你在硕士期间做的相对满意、有成就感或具有挑战性的项目,包括项目背景、目的、你在其中的工作内容以及满意之处?7.问:在项目推进过程中,有哪些比较满意的点,如果重新来过,有哪些层面可以做得更好?8.问:你是否有实习经历,在之前的实习岗位是做什么的?9.问:你在实习期间实习了多久?10.问:在企业实习(如实习神经学、大数据和网络安全等岗位)与学校跟随导师做实验室项目,两者之间有什么核心差异?答:核心差异在于研究生阶段的研究工作更多是探索性的工作,在前人基础上挖掘新的领域;而在企业实习则是针对已有的岗位和明确的工作职责,主要任务是掌握当前的工作岗位,不需要过多的探索性工作。11.问:在之前实习的过程中,遇到的最大挑战是什么?答:最大的挑战是适应体制内工作,学会半文半事,与不同人打交道,包括参加会议并做会议纪要等文书工作。12.问:在实习期间,你在做人和做事能力上有哪些具体的提升?13.问:你是否有设想过如果来到互联网公司实习后可能会遇到哪些困难,并且是否决心从事互联网行业?答:认为人生是探索,虽然了解到互联网行业的差异,但尚未深入了解,打算通过实习期间的探索,尝试进入互联网行业作为未来可能的第一份工作。14.问:如果我给你这样一个暑期实习offer,你过来之后,在上手和工作推进过程中,你觉得会遇到哪些层面的挑战或困难?答:我觉得我的岗位是测试开发,主要挑战包括编写和执行测试文档,以及进行自动化测试和基础平台的研发。这些工作都是我之前没有接触过的,需要在短期内熟悉公司的流程和技术要求,例如学习自动化测试所需的Python语言或基础平台开发能力,以及熟悉测试文档的结构、编写到执行的全流程和缺陷生命周期管理。15.问:做好这个暑期实习岗位的核心能力层面有哪些?答:核心能力层面首先是编码能力,因为进行技术平台开发时编码是必需的。其次,沟通能力也很重要,需要与产品经理、开发人员进行有效沟通。所以提升编码能力和沟通能力都是必要的。16.问:你觉得我们公司或实习岗位对你来说比较好的地方主要在哪些层面?答:我觉得主要优势在于公司的定位,作为阿里系公司,拥有足够大的平台,这对于个人能力是一种很好的背书。此外,工作地点在杭州或上海,这两个地方我都喜欢,并且对测试开发相关工作内容较为熟悉,有助于能力增长。17.问:你能否客观分析一下,觉得自己与其他申请者相比,在哪些方面具有优势和劣势?18.问:你是否可以接受上海和杭州这两个地点作为实习地点?19.问:实习时间上,你最快什么时候能开始,最晚可以实习到什么时候?反问环节1.问:公司主业是否偏向某一地?答:公司没有所谓的主业或总部概念,外卖业务上上海和杭州是双核心定位,而从阿里整体来看,杭州是总部所在地。2.问:上海这边的团队主要负责哪一块业务?答:上海团队主要负责首页APP交易到购物车、下单页的链路测试,同时负责创新型业务如拼团、秒杀、卡券类业务闭环开发,以及营销工具玩法(超级吃货卡、红包、吃货豆等)的设计与测试。3.问:是否可以了解一下工作节奏?答:实习期间,公司对实习生的工作量期望并不高,更关注实习生主动学习能力和对业务的理解深度。正常情况下,正式员工晚上一般在8点至9点半之间下班,但若项目上线节奏紧张时,可能会有所加班。
查看19道真题和解析
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

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