当前位置: 首页 > 面试经验 >

【7.12】农行研发中心暑期实习面试+机试

优质
小牛编辑
154浏览
2023-03-28

【7.12】农行研发中心暑期实习面试+机试

面试

上午八点半后候场,然后九点开始面试。
有很多个面试官,但是全程只有一个面试官提问。我是java技术栈,自我介绍说了两个学习过程中的小项目,然后面试官就追着这两个小项目提问。因为我的有一个项目涉及到并发访问,但是是低并发,面试官就问了如何处理高并发场景。最后面试官说我简历上写了那么多技术,最熟悉的是哪一个,我回答了数据结构和算法,就问了我两个问题:1.图的存储方式;2.最短路径算法。
整个面试过程只有十多分钟

机考

然后中午来短信说下午参加机考,与前面的笔试不同,这次只有两道编程题+一道SQL题(60分钟)。两道编程很简单:

  • 1.合并两个有序数组
  • 2.给定一个字符串,相邻的两个字符可以消去,求最后剩下的字符串(用栈即可)

SQL题没写出来,不知道会有SQL题,早知道就复习了。但是下来回忆着写了一下,我觉得应该差不多

题目回忆(表和字段名随便取的,但是不影响):

  • 一个user表,字段有id,name,
  • 一个work表,字段有id,s1,s2
    字段类型都为varchar,s2的长度=3。
    如果s1的前三个字符=s2,认定该条记录时正确的,否则为错误的;
    查询每个用户的错误记录数,并按错误数降序排列,如果错误数相等,则按照id升序

    建表和插入数据

    CREATE TABLE `user` (
      `id` VARCHAR(255) NOT NULL,
      `name` VARCHAR(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
    INSERT INTO `user` VALUES('001','z1'),('002','z2'),('003','z3'),('004','z4'),('005','z5');
    CREATE TABLE `work` (
      `id` VARCHAR(255) NOT NULL,
      `s1` VARCHAR(255) NOT NULL,
      `s2` VARCHAR(255) NOT NULL
    ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
    INSERT INTO `work` VALUES('001','12345678','123'),
    ('001','123456','123'),
    ('002','1111111','112'),
    ('003','151515','111'),
    ('004','11111','111'),
    ('005','1111','111'),
    ('002','1111111','113');

    执行查询

    SELECT t1.id,t1.name,IFNULL(t2.TIMES,'0') AS `TIMES`
    FROM `user` AS t1 LEFT JOIN (
      SELECT id,COUNT(id) AS `TIMES`
      FROM `work`
      WHERE STRCMP(LEFT(s1,3),s2)!=0
      GROUP BY id
    ) AS t2
    ON t1.id = t2.id
    ORDER BY t2.TIMES DESC,id ASC;
    SQL题主要考察了:子查询、按多个字段排序、字符串函数用法、连接查询中将结果为null的置为'0'(题目要求是字符串)
    贴一下结果:
#农行研发中心##农行软开实习##农行暑期实习笔试##农行面试#
 类似资料: