发布时间:2026/7/26 6:29:49
华为非AI方向笔试真题 7月15号【字符补全】 字符补全(C/Py/Java/Js/Go)题解华为笔试真题 7月15号 非AI方向第三题 300分题型题目内容给定一个目标字符串TTT和一个源字符串SSS请你找出需要在SSS中最少插入多少个字符可以在任意位置插入才能使得TTT成为SSS的子序列。注意子序列定义对于一个字符串UUU如果字符串VVV可以通过删除UUU中的一些字符可以删除000个或多个不改变剩余字符的相对顺序得到则称VVV是UUU的子序列。例如在 “acbdacbdacbd” 中“ababab”、“acacac”、“adadad”、“cdcdcd”、abcdabcdabcd等都是其子序列。子序列中的字符在原字符串中不需要连续出现但必须保持原有的相对顺序。例如“ababab” 是 “axbyaxbyaxby” 的子序列因为 ‘aaa’ 在 ‘bbb’ 之前出现。只能插入字符不能删除或修改现有字符。插入的字符必须是TTT中有的字符。约束条件:1≤∣S∣,∣T∣≤25001 \le |S|, |T| \le 25001≤∣S∣,∣T∣≤2500SSS和TTT只包含小写字母′a′a′a′~′z′z′z′输入描述第一行输入目标字符串TTT第二行输入源字符串SSS输出描述输出最少需要插入的字符数量样例1输入abc ac输出1说明在 ‘ccc’ 前面插入 ‘bbb’得到 “abcabcabc”所以需要插入111个字符。这是最典型的情况展示了当目标字符串只比源字符串多一个字符时如何处理。样例2输入abc xyz输出3说明源字符串SSS中没有目标字符串TTT的任何字符需要插入 “abcabcabc” 全部333个字符。这是边界情况展示了当两个字符串完全不相交时如何处理。样例3输入aaab ab输出2说明源字符串SSS只有 “ababab”而目标字符串TTT有三个 ‘aaa’ 和一个 ‘bbb’。可以匹配一个 ‘aaa’ 和一个 ‘bbb’但还需要插入两个 ‘aaa’。这是特殊情况展示了重复字符的处理。题解思路思路:动态规划本题其实可以直接转换为求S T的最长公共子序列要插入的字母数量就为T.size() - 最大公共子序列长度。求最长子序列使用对应模板即可定义dp[i][j]数组表示T 前 i 个字符和 S 前 j 个字符*的最长公共子序列长度状态转移字符相同T[i-1] S[j-1], 对应执行dp[i][j] dp[i - 1][j - 1] 1;字符不相同时执行dp[i][j] max(dp[i - 1][j], dp[i][j - 1]);最终结果即为T.size() - dp[n][m], 总体时间复杂度为OnmC#includebits/stdc.husingnamespacestd;intmain(){ios_base::sync_with_stdio(false);cin.tie(nullptr);string t,s;cint;cins;intnt.size();intms.size();// dp[i][]j T 前 i 个字符 和 S 前 j 个字符 的最长公共子序列长度。vectorvectorintdp(n1,vectorint(m1,0));for(inti1;in;i){for(intj1;jm;j){if(t[i-1]s[j-1]){dp[i][j]dp[i-1][j-1]1;}else{dp[i][j]max(dp[i-1][j],dp[i][j-1]);}}}intansn-dp[n][m];coutans;return0;}javaimportjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);Stringtsc.next();Stringssc.next();intnt.length();intms.length();// dp[i][j]T 前 i 个字符 和 S 前 j 个字符 的最长公共子序列长度。int[][]dpnewint[n1][m1];for(inti1;in;i){for(intj1;jm;j){if(t.charAt(i-1)s.charAt(j-1)){dp[i][j]dp[i-1][j-1]1;}else{dp[i][j]Math.max(dp[i-1][j],dp[i][j-1]);}}}intansn-dp[n][m];System.out.print(ans);}}pythontinput()sinput()nlen(t)mlen(s)# dp[i][j]T 前 i 个字符 和 S 前 j 个字符 的最长公共子序列长度。dp[[0]*(m1)for_inrange(n1)]foriinrange(1,n1):forjinrange(1,m1):ift[i-1]s[j-1]:dp[i][j]dp[i-1][j-1]1else:dp[i][j]max(dp[i-1][j],dp[i][j-1])ansn-dp[n][m]print(ans)javascriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});constinput[];rl.on(line,(line){input.push(line);});rl.on(close,(){consttinput[0];constsinput[1];constnt.length;constms.length;// dp[i][j]T 前 i 个字符 和 S 前 j 个字符 的最长公共子序列长度。constdpArray.from({length:n1},()Array(m1).fill(0));for(leti1;in;i){for(letj1;jm;j){if(t[i-1]s[j-1]){dp[i][j]dp[i-1][j-1]1;}else{dp[i][j]Math.max(dp[i-1][j],dp[i][j-1]);}}}constansn-dp[n][m];console.log(ans);});Gopackagemainimport(bufiofmtos)funcmax(a,bint)int{ifab{returna}returnb}funcmain(){in:bufio.NewReader(os.Stdin)vart,sstringfmt.Fscan(in,t)fmt.Fscan(in,s)n:len(t)m:len(s)// dp[i][j]T 前 i 个字符 和 S 前 j 个字符 的最长公共子序列长度。dp:make([][]int,n1)fori:0;in;i{dp[i]make([]int,m1)}fori:1;in;i{forj:1;jm;j{ift[i-1]s[j-1]{dp[i][j]dp[i-1][j-1]1}else{dp[i][j]max(dp[i-1][j],dp[i][j-1])}}}ans:n-dp[n][m]fmt.Print(ans)}

相关新闻

2026/7/26 6:29:49

知识蒸馏技术解析:从原理到PyTorch实践完整指南

在实际机器学习模型部署和优化过程中,我们经常遇到大模型计算资源消耗高、推理延迟难以满足线上服务要求的问题。知识蒸馏(Knowledge Distillation)作为一种有效的模型压缩技术,能够将大型、复杂的教师模型(Teacher Mo…

2026/7/26 6:29:49

TVA-World架构在工业质检领域的革命性突破(16)

导言:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,是集深度强化学习(DRL)、卷积神经网络(CNN&#xf…

2026/7/26 6:29:49

可变形(柔性)匹配算法复现

https://github.com/enazoe/local_deformable_matching_app 针对工业视觉检测中目标存在位置偏移、旋转、尺度变化以及局部形变等问题,开发了一套基于形状特征的可变形匹配算法。 该算法通过提取目标边缘轮廓、梯度方向等关键特征,建立高鲁棒性的形状模型…

2026/7/26 7:24:51

算法:贪心算法

引言 376. 摆动序列 - 力扣(LeetCode) 55. 跳跃游戏 - 力扣(LeetCode) 45. 跳跃游戏 II - 力扣(LeetCode) 134. 加油站 - 力扣(LeetCode) 135. 分发糖果 - 力扣(Lee…

2026/7/26 7:24:51

AM62L CBASS模块寄存器实战:从安全配置到总线错误调试

1. 从手册到实战:理解AM62L CBASS模块的寄存器世界如果你正在基于德州仪器(TI)的AM62L Sitara™处理器进行嵌入式开发,尤其是涉及到系统安全、总线访问控制或者深度调试,那么你迟早会和它的CBASS模块打交道。CBASS&…

2026/7/26 7:24:51

TI AM62L WKUP_PLL0时钟系统配置详解与实战

1. AM62L WKUP_PLL0时钟系统概述在嵌入式系统开发中,时钟系统是决定整个芯片性能和稳定性的基石。对于像TI AM62L Sitara™这样的高性能异构处理器,其内部集成了多个锁相环(PLL)来为不同的子系统提供时钟源。其中,WKUP…

2026/7/26 7:24:51

Docker容器网络实验手册 · 实验二

文章目录 实验手册 实验二 实验二:Host(主机)模式与端口冲突 1. 实验目标 2. 核心知识点图解 3. 实验环境准备 4. 实验步骤 Step 1:启动 Host 模式的 Nginx 容器 Step 2:验证网络栈共享 Step 3:模拟端口冲突(核心实验) Step 4:宿主机端口占用排查 5. 实验原理深度解析…

2026/7/26 7:24:51

DeepBI 如何系统提升亚马逊 Listing 转化率

引言:2025 年,你的转化率在拖后腿吗?进入 2025 年,亚马逊市场的竞争与流量成本压力仍在上升。即使投入相近的曝光资源,Listing 也未必能够有效承接流量:主图难以吸引点击,标题与五点描述未能快速…

2026/7/26 7:19:51

AI辅助教材编写:工具链构建与质量管控实践

1. 教材编写的新范式:AI辅助创作的价值解析最近两年,教育出版行业正在经历一场静悄悄的革命。作为一名参与过十余本专业教材编写的教育工作者,我亲眼见证了AI工具如何改变传统教材编写的游戏规则。过去需要三个月完成的章节内容,现…

2026/7/26 0:03:36

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/26 0:03:36

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/26 2:45:59

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…