华为OD机试真题 JavaScript 实现【字符串序列判定】【2022Q4 100分】,附详细解题思路

news/2024/10/22 14:32:42/

在这里插入图片描述

一、题目描述

输入两个字符串a和b,都只包含英文小写字母。a长度<=100,b长度<=500,000

判定a是否是b的有效子串。

判定规则:

a中的每个字符在b中都能找到(可以不连续),且a在b中字符的前后顺序与a中顺序要保持一致。

(例如,a=”qwt”b=”qwerty”的一个子序列且有效字符是q、w、t)。

二、输入描述

输入两个字符串a和b,都只包含英文小写字母。a长度<=100,b长度<=500,000。
先输入a,再输入b,每个字符串占一行。

三、输出描述

a串最后一个有效字符在b中的位置。(首位从0开始计算,无有效字符返回-1)。

四、解题思路

  1. 读取输入的字符串 a 和 b;
  2. 定义变量 index 并初始化为 -1,表示有效字符在 b 中的最后位置;
  3. 遍历字符串 a,对于每个字符:
    • 定义一个标志位 flag,初始值为 false;
    • 从 index+1 开始遍历字符串 b,找到 a 中字符在 b 中的第一个匹配位置;
    • 如果找到匹配位置,更新 index 为该位置,将 flag 设置为 true,跳出内层循环;
    • 如果未找到匹配位置,返回当前 index 的值。
  4. 如果遍历完 a 后,未出现未匹配的情况,返回 index 的值;
  5. 输出最终结果。

五、JavaScript算法源码

// 读取输入的字符串 a 和 b
function get(a, b) {let index = -1;// 遍历字符串 afor (let i = 0; i < a.length; i++) {let flag = false;// 从 index+1 开始遍历字符串 b,找到 a 中字符在 b 中的第一个匹配位置for (let j = index + 1; j < b.length; j++) {// 如果找到匹配位置,更新 index 为该位置,将 flag 设置为 true,跳出内层循环if (a[i] === b[j]) {index = j;flag = true;break;}}// 如果未找到匹配位置,返回当前 index 的值if (!flag) {return index;}}return index;
}

六、效果展示

1、输入

qwt
qwerty

2、输出

4

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/461193.html

相关文章

Tableau数据分析数据可视化分析平台

Tableau数据分析&数据可视化分析平台 ​ 本文章内涉及的资源包以及素材均来自于互联网&#xff0c;仅供大家用来交流学习与研究使用&#xff0c;努力提升自己的一篇文章。各类安装包以及素材版权归属原版权方所有&#xff0c;版权争议与本人无关&#xff0c;用户本人下载后…

攻防比赛中系统层漏洞挖掘-身份隐藏解决方案

系统层漏洞挖掘 系统层漏洞的挖掘需要很多相对高级的漏洞挖掘方法。从实战角 度看&#xff0c;以下6种挖掘方法最为实用&#xff1a;代码跟踪、动态调试、Fuzzing技 术、补丁对比、软件逆向静态分析、系统安全机制分析。 1&#xff09;代码跟踪。代码跟踪是指通过自动化分析工…

攻防演练中攻击队需要的安全技能第二篇

系统层漏洞挖掘 系统层漏洞的挖掘需要很多相对高级的漏洞挖掘方法。从实战角 度看&#xff0c;以下6种挖掘方法最为实用&#xff1a;代码跟踪、动态调试、Fuzzing技 术、补丁对比、软件逆向静态分析、系统安全机制分析。 1&#xff09;代码跟踪。代码跟踪是指通过自动化分析工…

MacTips-MacTalk

摘自《MacTalk人生元编程》这本书。部分内容&#xff08;比如快捷键&#xff09;可能已经过时&#xff0c;请自行斟酌。 MacTips快速查询&#xff08;目录导航&#xff09; 1&#xff0e;终端输入说英语 2&#xff0e;Spotlight快速打开程序 3&#xff0e;Spotlight注释功能…

宠物商城系统的设计与开发(毕业论文第一、二章)

又到毕业季了&#xff0c;看到很多毕业党们又要忙找工作&#xff0c;还要忙着做毕业设计&#xff0c;非常辛苦。刚好有一个朋友&#xff0c;发了一篇宠物商城系统设计的毕业论文&#xff0c;感觉写的不错&#xff0c;就发出来给有需要的人分享&#xff0c;整篇文章的结构如下&a…

操作系统知识

只有我们知道了什么是完美的计算机病毒&#xff0c;才可以造就完美的防毒软件。轮回&#xff1a;魔高一尺&#xff0c;道高一丈。 病毒的定义是相对的&#xff0c;我将之定义为对于一定的环境&#xff0c;能够寄生&#xff0c;快速繁殖&#xff0c;能够通过变异和杂交&#xff…

安卓与IOS的区别

一、安卓与IOS的区别&#xff1a; 1、两者运行机制不同&#xff1a;IOS采用的是沙盒运行机制&#xff0c;安卓采用的是虚拟机运行机制。 2、两者后台制度不同&#xff1a;IOS中任何第三方程序都不能在后台运行&#xff1b;安卓中任何程序都能在后台运行&#xff0c;直到没有内…

【一周头条盘点】中国软件网(2018.2.5~2018.2.9)

每一个企业级的人 都置顶了 中国软件网 中国软件网 为你带来最新鲜的行业干货 趋势洞察 海比研究总监刘学习&#xff1a;区块链领先全球说荒唐&#xff0c;技术与商业的突破才是根本 在达沃斯世界经济论坛上&#xff0c;中国区块链应用研究中心发布了《中国区块链行业发展报告2…