华为OD机试真题2026双机位C卷 PythonJS 实现【用户入网定期复评】

发布时间:2026/5/23 10:23:07

华为OD机试真题2026双机位C卷 PythonJS 实现【用户入网定期复评】 目录题目思路Code题目用户开立支付账户在开户完成后立即对用户进行一次风险模型评级输出一个评分风险评分范围1-100等区间的分为5个等级1-19为等级1,20-39为等级240-59为等级360-79为等级480-100为等级5系统每天会任务对全量入网用户进行计算复评时间输出评分给出新的风险等级。复评规则如下:等级1每36个月重评一次。等级2每12个月重评一次。等级3每8月重评一次。等级4每6个月重评一次。等级5每3个月重评一次。每个月固定按照30天计算下次日期即每3个月对应下次日期为90天后其它同理。如果上次评级时间和本次任务时间差超过了该等级应该重评的时间说明上次漏评那么该等级自动评级提升1等级按照新的等级计算下次一定重评时间最高为等级5.输入描述输入共m1行每行信息如下:1.第一行为m和task_date中间以空格分割m表示全量用户数task_date表示本次评级任务启动时间。2.第2行到m1行为m个用户信息按顺序每个用户的信息格式为name(用户姓名),last rating-time(上次评级的时间,整数,表示从2000年1月1日起的天数),score(用户上一次的评分)以空格分割。3.name为仅小写字母组成的字符串,字符串长度范围为[1-500]输出描述输出当前任务时间与上次复评时间小于等于5天的评级用户逗号分割输出。1.按照复评时间升序排序2.用户复评时间一致按照姓名升序排序。示例1输入1 100zhangsan 8 87输出zhangsan思路虽然题目比较长描述比较多但是确实是个简单的逻辑模拟类题目。根据评分算出等级每20分一档80-100归为等级5用等级查表得到重评周期等级11080天等级590天算出下次复评时间 上次时间 周期如果任务时间已超过复评时间漏评等级自动1上限5用新等级重新算复评时间筛选出复评时间与任务时间差 ≤ 5天的用户按复评时间升序、同时间按姓名升序输出Codeimport sys def solve(): lines [] for line in sys.stdin: lines.append(line.strip()) # 解析第一行用户数 m 和任务日期 task_date first lines[0].split() m int(first[0]) task_date int(first[1]) # 各等级对应的重评周期天等级1~5 period {1: 36*30, 2: 12*30, 3: 8*30, 4: 6*30, 5: 3*30} result [] for i in range(1, m 1): parts lines[i].split() name parts[0] last_time int(parts[1]) score int(parts[2]) # 根据评分计算等级1-19→1, 20-39→2, 40-59→3, 60-79→4, 80-100→5 if score 19: level 1 elif score 39: level 2 elif score 59: level 3 elif score 79: level 4 else: level 5 # 计算应复评时间 next_time last_time period[level] # 如果任务时间已超过应复评时间说明漏评等级提升1级 if task_date next_time: level min(level 1, 5) next_time last_time period[level] # 筛选复评时间与任务时间的差的绝对值 5天 if abs(next_time - task_date) 5: result.append((next_time, name)) # 按复评时间升序时间相同按姓名升序 result.sort() # 逗号分隔输出 print(,.join(item[1] for item in result)) solve()JSconst readline require(readline); const rl readline.createInterface({ input: process.stdin }); const lines []; rl.on(line, line lines.push(line.trim())); rl.on(close, () { // 解析第一行用户数 m 和任务日期 task_date const first lines[0].split( ); const m parseInt(first[0]); const taskDate parseInt(first[1]); // 各等级对应的重评周期天等级1~5 const period [0, 36*30, 12*30, 8*30, 6*30, 3*30]; const result []; // 存 {nextTime, name} for (let i 1; i m; i) { const parts lines[i].split( ); const name parts[0]; const lastTime parseInt(parts[1]); const score parseInt(parts[2]); // 根据评分计算等级1-19→1, 20-39→2, 40-59→3, 60-79→4, 80-100→5 let level; if (score 19) level 1; else if (score 39) level 2; else if (score 59) level 3; else if (score 79) level 4; else level 5; // 计算应复评时间 let nextTime lastTime period[level]; // 如果任务时间已超过应复评时间说明漏评等级提升1级 if (taskDate nextTime) { level Math.min(level 1, 5); nextTime lastTime period[level]; } // 筛选复评时间与任务时间的差的绝对值 5天 if (Math.abs(nextTime - taskDate) 5) { result.push({ nextTime, name }); } } // 按复评时间升序时间相同按姓名升序 result.sort((a, b) { if (a.nextTime ! b.nextTime) return a.nextTime - b.nextTime; return a.name b.name ? -1 : a.name b.name ? 1 : 0; }); // 逗号分隔输出 console.log(result.map(r r.name).join(,)); });【华为od机试真题PythonJSJavaGo合集】【超值优惠】Py/JS/Java/Go合集【华为od机试真题Python】Python真题题库【华为od机试真题JavaScript】JavaScript真题题库【华为od机试真题JavaGo】JavaGo真题题库【华为od机试真题C】C真题题库【华为od机试真题C语言】C语言真题题库【华为od面试手撕代码题库】面试手撕代码题库【华为od机试面试交流群830285880】【文章底部有二维码链接可扫码加交流群】华为OD机试:二本院校有机会吗?有机会,但不大,大神除外!机考分数越高越好,所以需要提前刷题。机考通过后,如果没有收到面试邀请,也不要着急,非目标院校面试邀请发的时间比较晚。非目标院校今年有点难,机试至少要考到350分,所以需要疯狂刷题,华为OD机考是有题库的,最好在考前完所有题库题目。华为OD机试:跨专业可以参加华为OD可以,但是如果你的本科院校比较差,上岸概率不大。华为OD机试:华为OD简历被锁定机试通过,性格测试也通过,但是没人联系面试,发现简历被锁定。此时需要主动去联系HR。让他帮助你查询原因。

相关新闻