【7.12】農(nóng)行研發(fā)中心暑期實(shí)習(xí)面試+機(jī)試
面試
上午八點(diǎn)半后候場(chǎng),然后九點(diǎn)開始面試。
有很多個(gè)面試官,但是全程只有一個(gè)面試官提問。我是java技術(shù)棧,自我介紹說了兩個(gè)學(xué)習(xí)過程中的小項(xiàng)目,然后面試官就追著這兩個(gè)小項(xiàng)目提問。因?yàn)槲业挠幸粋€(gè)項(xiàng)目涉及到并發(fā)訪問,但是是低并發(fā),面試官就問了如何處理高并發(fā)場(chǎng)景。最后面試官說我簡(jiǎn)歷上寫了那么多技術(shù),最熟悉的是哪一個(gè),我回答了數(shù)據(jù)結(jié)構(gòu)和算法,就問了我兩個(gè)問題:1.圖的存儲(chǔ)方式;2.最短路徑算法。
整個(gè)面試過程只有十多分鐘
機(jī)考
然后中午來短信說下午參加機(jī)考,與前面的筆試不同,這次只有兩道編程題+一道SQL題(60分鐘)。兩道編程很簡(jiǎn)單:
- 1.合并兩個(gè)有序數(shù)組
- 2.給定一個(gè)字符串,相鄰的兩個(gè)字符可以消去,求最后剩下的字符串(用棧即可)
SQL題沒寫出來,不知道會(huì)有SQL題,早知道就復(fù)習(xí)了。但是下來回憶著寫了一下,我覺得應(yīng)該差不多
題目回憶(表和字段名隨便取的,但是不影響):
- 一個(gè)user表,字段有id,name,
- 一個(gè)work表,字段有id,s1,s2
字段類型都為varchar,s2的長(zhǎng)度=3。
如果s1的前三個(gè)字符=s2,認(rèn)定該條記錄時(shí)正確的,否則為錯(cuò)誤的;
查詢每個(gè)用戶的錯(cuò)誤記錄數(shù),并按錯(cuò)誤數(shù)降序排列,如果錯(cuò)誤數(shù)相等,則按照id升序建表和插入數(shù)據(jù)
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');
執(zhí)行查詢
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題主要考察了:子查詢、按多個(gè)字段排序、字符串函數(shù)用法、連接查詢中將結(jié)果為null的置為'0'(題目要求是字符串)
貼一下結(jié)果: