4399笔试 |【2023校招】Java后端开发工程师
2023校招 比2022校招难蛮多
选择题
略
技术问答题
- 谈谈JWT的结构?如何实现身份验证?
- 秒杀系统的设计思路?如何解决超卖?如何处理系统“热点”?
编程题
第一题:
希望拱门的气球颜色对称,或最多可以戳爆一个气球使得气球颜色对称
输入:aba 输出:true 输入:acea 输出:true(戳爆c或e) 输入:abcfa 输出:false 注意:不可用二重循环暴力破解
第二题:
在一款“程序猿快跑”的小游戏中,每局程序猿的初始能量值为C,程序续快跑的路上会遇到“能量盘”和“障碍物”,游戏设计规则包括: (1)如果程序猿触碰到“能量盒”,则当前能量值翻倍。 (2)如果程序须触碰到“障碍物1,则玩家能量值减1 (3)现在游戏需要控制:如果系统设置的所有“能量盒”和“障碍物”,玩家都触碰到的话,则该玩家仍然可以达到骅点,且在终点时的能量值为0.
注: (1)玩家能量值为正整数,且可无限存储能量,但如果路途中,玩家能力值已小于或等于0,则游戏结束。 (2)每局初始能量值C固定为3,“能量盒”总数量M(O<M<=20),“障碍物”总数量N(O<N<=20) 问:假设限定了每局游戏中的“能量盒”总数量M值和“障碍物”总数量N值,现在需要你计算出满足游戏设计规则的排列次序种致。如假设M=2,N=6。则:nmnnnmnn就是合理的次序之一。 说明: (1)输入格式:M、N分别为“能量盒”和“障碍物”总数量。 (2)输出格式:计算出游戏设计规则的排列次序种数。如:M=2,N=6,则输出结果:2,
第三题:
有 n 个气球,编号为 0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中, 现在要求你戳破所有的气球。每当你戳破一个气球i时,你可以获得。(nums[left] +1) * nums[i] * nums[right] 个硬币。这星的 Ieft 和 right 代表和/相邻的两个气球的序号。注意当你戳破了气球I后,气球 left和气球 right 就变成了相邻的气球, 求所能获得硬币的最大数量, 说明; 你可以假设 nums[-1] = nums[n] = 1,但注意它们不是真实存在的所以并不能被戳破。
0 <= n <= 500,0 <= nums[i] <= 100
主观论述题
略