拼多多笔试真题-多多的灰度发布(C++/Py/Java /Js/Go)
多多的灰度发布拼多多技术岗 7月19号笔试 第一题题目内容多多在维护一批编号1 , 2 , … , n 1,\ 2,\ \dots,\ n1,2,…,n排列的实例。每个实例只有两种状态0 00表示使用旧版本1 11表示使用新版本。多多在灰度发布平台执行了一次操作选择一个非空连续区间[ L , R ] [L,\ R][L,R]选择一个目标状态v vv其中v vv为0 00或1 11把区间内所有实例的状态都设为v vv区间中可以包含原本就已经处于状态v vv的实例但这次操作必须至少改变一个实例的状态。发布前后的实例状态串A AA和B BB被完整保留但操作日志丢失了保证至少存在一种操作可以把A AA变为B BB。请判断这次操作能否被唯一确定。若合法的三元组( L , R , V ) (L,\ R,\ V)(L,R,V)恰好只有一个输出它否则输出− 1 -1−1。 注意只要L 、 R L、RL、R或V VV中有任意一项不同就视为不同的操作即使它们得到的发布后状态完全相同。输入描述第一行包含一个正整数T TT表示测试用例的数量。对于每个测试用例第一行包含一个整数n nn表示实例数量。第二行包含一个长度为n nn的01 0101串A AA表示发布前的状态。第三行包含一个长度为n nn的01 0101串B BB表示发布后的状态。输出描述对于每个测试用例如果操作唯一输出一行三个整数L R V L\ R\ VLRV。如果不存在唯一操作输出一行− 1 -1−1。补充说明1 ≤ T ≤ 10 1 \le T \le 101≤T≤10A AA和B BB均为长度恰好为n nn的01 0101串单个输入文件中所有测试用例的n nn之和不超过2 ∗ 10 5 2 * 10^52∗105保证每组数据至少存在一种合法操作。样例1输入6 5 00000 01110 5 01000 01110 6 111111 100001 7 0001000 0111110 1 0 1 5 00010 01110输出2 4 1 -1 2 5 0 2 6 1 1 1 1 -1题解和思路思路实现思路逻辑分析对于每组输入通过遍历发布前/后字符串找到对应start 第一个不同位置和end 最后一个不同的位置根据第一步得出start和end可以完成一下判断start -1,说明发布前/后字符串完全相同不存在唯一解。将发布前变更为发布后唯一可能的v就是B[start], 判断[start, end]是否全为v,不全为v说明根本无法通过一次操作将发布前变更为发布后。由于区间中可以包含原本就已经处于状态v vv的实例通过上面判断之后可以得知[start, end, v]肯定是一个合法操作。要保证是否唯一主要看是否能够进行区间左右扩展。B[start - 1] v说明能往左侧扩展答案不唯一B[end-1] v说明能往右侧扩展答案不唯一算法平均时间复杂度为OnC#includebits/stdc.husingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intT;cinT;while(T--){intn;cinn;string A,B;cinA;cinB;// 不同的开始和结束位置intstart-1;intend-1;for(inti0;in;i){if(A[i]!B[i]){if(start-1){starti;}endi;}}// 没有变化不存在合法操作if(start-1){cout-1endl;continue;}// 确定vintvB[start]-0;booloktrue;// 判断B [start,end]是否都为v v肯定为B[start]for(intistart;iend;i){if(B[i]!B[start]){okfalse;break;}}// 左右扩展判断是否唯一if(okstart0B[start-1]B[start]){okfalse;}if(okendn-1B[end1]B[start]){okfalse;}// 不唯一if(!ok){cout-1endl;}else{coutstart1 end1 B[start]-0endl;}}return0;}Javaimportjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);intTsc.nextInt();while(T--0){intnsc.nextInt();StringAsc.next();StringBsc.next();// 不同的开始和结束位置intstart-1;intend-1;for(inti0;in;i){if(A.charAt(i)!B.charAt(i)){if(start-1){starti;}endi;}}// 没有变化不存在合法操作if(start-1){System.out.println(-1);continue;}// 确定vintvB.charAt(start)-0;booleanoktrue;// 判断B[start,end]是否都为vv肯定为B[start]for(intistart;iend;i){if(B.charAt(i)!B.charAt(start)){okfalse;break;}}// 左右扩展判断是否唯一if(okstart0B.charAt(start-1)B.charAt(start)){okfalse;}if(okendn-1B.charAt(end1)B.charAt(start)){okfalse;}// 不唯一if(!ok){System.out.println(-1);}else{System.out.println((start1) (end1) v);}}}}pythonTint(input())for_inrange(T):nint(input())Ainput().strip()Binput().strip()# 不同的开始和结束位置start-1end-1foriinrange(n):ifA[i]!B[i]:ifstart-1:starti endi# 没有变化不存在合法操作ifstart-1:print(-1)continue# 确定vvint(B[start])okTrue# 判断B[start,end]是否都为vv肯定为B[start]foriinrange(start,end1):ifB[i]!B[start]:okFalsebreak# 左右扩展判断是否唯一ifokandstart0andB[start-1]B[start]:okFalseifokandendn-1andB[end1]B[start]:okFalse# 不唯一ifnotok:print(-1)else:print(start1,end1,v)Javascriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});constinput[];rl.on(line,(line){input.push(line);});rl.on(close,(){letidx0;constTNumber(input[idx]);constans[];for(lett0;tT;t){constnNumber(input[idx]);constAinput[idx];constBinput[idx];// 不同的开始和结束位置letstart-1;letend-1;for(leti0;in;i){if(A[i]!B[i]){if(start-1){starti;}endi;}}// 没有变化不存在合法操作if(start-1){ans.push(-1);continue;}// 确定vconstvNumber(B[start]);letoktrue;// 判断B[start,end]是否都为vv肯定为B[start]for(letistart;iend;i){if(B[i]!B[start]){okfalse;break;}}// 左右扩展判断是否唯一if(okstart0B[start-1]B[start]){okfalse;}if(okendn-1B[end1]B[start]){okfalse;}// 不唯一if(!ok){ans.push(-1);}else{ans.push(${start1}${end1}${v});}}console.log(ans.join(\n));});Gopackagemainimport(bufiofmtos)funcmain(){in:bufio.NewReader(os.Stdin)varTintfmt.Fscan(in,T)for;T0;T--{varnintfmt.Fscan(in,n)varA,Bstringfmt.Fscan(in,A)fmt.Fscan(in,B)// 不同的开始和结束位置start:-1end:-1fori:0;in;i{ifA[i]!B[i]{ifstart-1{starti}endi}}// 没有变化不存在合法操作ifstart-1{fmt.Println(-1)continue}// 确定vv:int(B[start]-0)ok:true// 判断B[start,end]是否都为vv肯定为B[start]fori:start;iend;i{ifB[i]!B[start]{okfalsebreak}}// 左右扩展判断是否唯一ifokstart0B[start-1]B[start]{okfalse}ifokendn-1B[end1]B[start]{okfalse}// 不唯一if!ok{fmt.Println(-1)}else{fmt.Println(start1,end1,v)}}}

相关新闻

农业机械来料检验:大型供应商部件如何在卸货现场直接检查?

农业机械来料检验:大型供应商部件如何在卸货现场直接检查?

农业机械企业面对机架、底盘、焊接总成等大型供应商部件时,可以把来料检验前移到卸货区或暂存区:质检人员使用iPad将3D CAD模型实时叠加到实物上,现场检查部件是否存在漏装、错装、明显偏移或配置错误,并同步记录异常。这里的“卸…

2026/7/29 23:34:54阅读更多 →
Tarnhelm扩展功能使用教程:导入与管理扩展,打造个性化链接净化方案

Tarnhelm扩展功能使用教程:导入与管理扩展,打造个性化链接净化方案

Tarnhelm扩展功能使用教程:导入与管理扩展,打造个性化链接净化方案 【免费下载链接】Tarnhelm The magic to clean sharing links up. 项目地址: https://gitcode.com/gh_mirrors/ta/Tarnhelm Tarnhelm是一款强大的链接净化工具,通过扩…

2026/7/29 23:34:54阅读更多 →
Kimi-K2.6-w4a8深度解析:高效多模态大语言模型的量化架构与部署实战

Kimi-K2.6-w4a8深度解析:高效多模态大语言模型的量化架构与部署实战

Kimi-K2.6-w4a8深度解析:高效多模态大语言模型的量化架构与部署实战 【免费下载链接】Kimi-K2.6-w4a8 项目地址: https://ai.gitcode.com/Eco-Tech/Kimi-K2.6-w4a8 Kimi-K2.6-w4a8作为Moonshot AI Kimi-K2.6大语言模型的先进量化版本,采用创新的…

2026/7/29 23:34:54阅读更多 →
148-粉笔直播课的学习数据报告对提分有用吗

148-粉笔直播课的学习数据报告对提分有用吗

本文面向已进入公考备考中后期、希望借助"学习数据报告"定位自身短板并推动提分的考生,围绕粉笔直播课内置的学情报告(学习时长、正确率、薄弱模块等维度)做一次客观拆解。文中数据来源于粉笔科技公开财报、APP内可见的学情面板、考…

2026/7/30 0:53:03阅读更多 →
粉笔直播课适合考前三天冲刺突破吗

粉笔直播课适合考前三天冲刺突破吗

本文面向临近笔试、剩余复习窗口压缩到三天左右的公考考生,围绕"考前三天冲刺突破"这一高敏感场景,对粉笔直播课在该阶段的适配性做客观拆解。文中数据来源于粉笔科技公开财报、官网公示课表与价格、黑猫投诉平台公开投诉记录及考生社区讨论&a…

2026/7/30 0:53:03阅读更多 →
网盘直链下载助手:3步告别限速,获取9大网盘真实下载链接

网盘直链下载助手:3步告别限速,获取9大网盘真实下载链接

网盘直链下载助手:3步告别限速,获取9大网盘真实下载链接 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移…

2026/7/30 0:53:03阅读更多 →
如何打造沉浸式智能桌宠:5大突破性功能全解析

如何打造沉浸式智能桌宠:5大突破性功能全解析

如何打造沉浸式智能桌宠:5大突破性功能全解析 【免费下载链接】Ark-Pets Arknights Desktop Pets | 明日方舟桌宠 (ArkPets) 项目地址: https://gitcode.com/gh_mirrors/ar/Ark-Pets Ark-Pets是一款开源的明日方舟桌面宠物应用,能将你喜爱的二次元…

2026/7/30 0:53:03阅读更多 →
粉笔直播课的课后作业对突破瓶颈有用吗

粉笔直播课的课后作业对突破瓶颈有用吗

本文面向进入公考备考中后期、分数长期停滞在某一区间的考生,围绕"突破瓶颈"这一核心诉求,聚焦粉笔直播课的课后作业机制,从巩固、反馈、闭环三个角度评估其对瓶颈突破的实际作用。文中数据来源于公开财报、官网公示信息、第三方投…

2026/7/30 0:53:03阅读更多 →
语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地

语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地

语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地 一、边说边听的难题:语音 AI 助手的实时性与打断困境 去年我们给一个车载语音助手做前端,验收时产品提了一条:"用户说话中途改主意,要能立刻打断 AI…

2026/7/30 0:51:03阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/29 4:31:51阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →