华为OD机试真题 JavaScript 实现【最长子字符串的长度】【2022Q4 100分】,附详细解题思路

news2024/11/25 19:31:11

在这里插入图片描述

一、题目描述

给你一个字符串s,字符串s首尾相连组成一个环形,请你在环形中找出‘o’字符出现了偶数次最长子字符串的长度。

二、输入描述

输入一串小写字母组成的字符串。

三、输出描述

输出一个整数。

四、解题思路

题目要求在给定的环形字符串中找出字符’o’出现了偶数次的最长子字符串的长度。

解题思路如下:

  1. 读取输入的环形字符串;
  2. 将环形字符串转换为字符数组;
  3. 统计字符数组中字符’o’的个数,记为num;
  4. 判断num的奇偶性,如果num为偶数,表示字符’o’出现了偶数次,直接输出环形字符串的长度len作为最长子字符串的长度;如果num为奇数,表示字符’o’出现了奇数次,输出环形字符串的长度len减去1作为最长子字符串的长度;
  5. 输出最长子字符串的长度。

解题思路分析:

该算法首先统计字符’o’在环形字符串中出现的次数,然后根据次数的奇偶性确定最长子字符串的长度。如果字符’o’出现了偶数次,那么整个环形字符串都可以作为最长子字符串;如果字符’o’出现了奇数次,需要去掉一个字符’o’以满足出现次数的偶数性质,所以最长子字符串的长度为环形字符串长度减去1。算法的时间复杂度为O(n),其中n为环形字符串的长度。

五、JavaScript算法源码

// 读取输入的环形字符串
const s = readline();

// 将环形字符串转换为字符数组
const arr = s.split('');

// 统计字符'o'的个数
let num = 0;
for (const c of arr) {
  if (c === 'o') {
    num++;
  }
}

// 判断字符'o'出现的次数的奇偶性,并输出最长子字符串的长度
const len = arr.length;
if (num % 2 === 0) {
  console.log(len);
} else {
  console.log(len - 1);
}

六、效果展示

1、输入

neozhastudyoo

2、输出

12

3、说明

包含偶数个的最长的字符串是neozhastudyo,长度为12。

在这里插入图片描述


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

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML中嵌入JavaScript代码的三种方式

第一种方式: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>HTML中嵌入JavaScript的第一种方式</title> </head> <body> <!-- 1.要实现的功能…

Unix/Linux操作系统的最强入门科普(经典)

今天这篇文章&#xff0c;我们来聊聊操作系统&#xff08;Operating System&#xff09;。 说到操作系统&#xff0c;大家都不会陌生。我们天天都在接触操作系统——用台式机或笔记本电脑&#xff0c;使用的是windows和macOS系统&#xff1b;用手机、平板电脑&#xff0c;则是…

深度学习入门——神经网络

神经网络 神经网络是一种受到人脑神经系统启发的机器学习模型。它由一系列相互连接的人工神经元组成&#xff0c;这些神经元以层次结构排列。每个神经元接收来自上一层神经元的输入&#xff0c;并根据权重和激活函数对输入进行加权处理&#xff0c;然后将输出传递给下一层神经…

【框架源码】Spring源码解析之Bean创建源码流程

问题&#xff1a;Spring中是如何初始化单例bean的&#xff1f; 我们都知道Spring解析xml文件描述成BeanDefinition&#xff0c;解析BeanDefinition最后创建Bean将Bean放入单例池中&#xff0c;那么Spring在创建Bean的这个过程都做了什么。 Spring核心方法refresh()中最最重要…

uniapp小程序订单页面UI

前言 之前用模板写了订单页面&#xff0c;由于需求改了导致这个页面做更新麻烦&#xff0c;弄了一下午&#xff0c;索性全部删除了自己写了&#xff0c;上面的tabs用的是b-ui框架写的&#xff0c;其他的都是原生写法。 &#x1f64f;如果这篇文章对你有帮助还请收藏点赞关注&…

【计算机视觉】不仅能分割一切简单物体,而且还能高精度分割一切复杂物体的SAM升级版本HQ-SAM来了

文章目录 一、SAM 导读二、SAM 的应用场景2.1 SAM-RBox-生成旋转矩形框2.2 Prompt-Segment-Anything-生成矩形框和掩2.3 Grounded-Segment-Anything-开放数据集检测与分割2.4 segment-anything-video-视频分割2.5 Open-vocabulary-Segment-Anything-开放词典分割2.6 SegDrawer-…

快速入门 Lua 编程

以下是一个简单的 Lua 快速编程教程&#xff0c;帮助你快速入门 Lua 编程。 安装 Lua 首先&#xff0c;你需要安装 Lua。你可以从 Lua 官网&#xff08;https://www.lua.org/download.html&#xff09;下载适合你的操作系统的安装包。安装完成后&#xff0c;你可以在命令行中…

CTFHub | 命令注入

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

记录一次scala项目导入编译失败的问题

文章目录 Scala项目环境问题记录小结 Scala项目环境 Java8 scala-2.11.12 MacBook Apple m2芯片 问题记录 1、scala版本安装 我的本地环境&#xff1a; ➜ ~ java --version openjdk 11.0.18 2023-01-17 OpenJDK Runtime Environment Homebrew (build 11.0.180) OpenJDK 64-…

【Flutter】Flutter 如何实现开屏广告

文章目录 一、前言二、实现开屏广告页面三、实现广告数据的加载四、开屏广告的完整代码五、总结 一、前言 开屏广告这个功能在商业应用中非常常见&#xff0c;它可以在应用启动时向用户展示广告&#xff0c;增加应用的商业价值。 如果你想深入学习 Flutter&#xff0c;掌握更…

BUUCTF 传统知识+古典密码 1

题目描述&#xff1a; 小明某一天收到一封密信&#xff0c;信中写了几个不同的年份 辛卯&#xff0c;癸巳&#xff0c;丙戌&#xff0c;辛未&#xff0c;庚辰&#xff0c;癸酉&#xff0c;己卯&#xff0c;癸巳。 信的背面还写有“甲子”&#xff0c;请解出这段密文。 key值&a…

大学生实习周记总结

大学生实习周记总结1 经过两个月的实习&#xff0c;我收获了很多&#xff0c;也懂得了许多&#xff0c;同时也成熟了不少。下面我将把我两个月的实习生活分成五个部分进行总结&#xff1a;教学经验、班主任工作、做事态度、学生友谊、感恩的心。 教学经验&#xff1a;如何上好一…

使用大型语言模(LLM)构建系统(六):构建端到端系统

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程&#xff0c;我想和大家一起分享一下该门课程的一些主要内容。之前我们已经学习了下面这些知识&#xff1a; 使用大型语言模(LLM)构建系统(一)&#xff1a;分类使用大型语言模(LLM)构建系统(二):内容审核、…

如何系统的学习python中的numpy,pandas,matplotlib?太有用了!!!

前言 随着大数据、云计算和人工智能的发展&#xff0c;越来越多的企业需要以数据为基础做出决策。数据分析是处理大量数据的过程&#xff0c;分析数据以识别趋势和模式&#xff0c;并从数据中提取有用的信息来支持业务决策。数据分析可以应用于各种不同的领域&#xff0c;如营…

性能测试如何做?性能测试-稳定性场景设计详细,晋升之路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 我们谈到测试设计…

liunx服务器安装kafka

liunx服务器安装kafka 1. 初始化安装环境1.1 安装jdk1.1.1 找到对应的jdk版本1.1.2 下载并安装1.1.2.1 配置jdk环境变量 1.2 安装 zookeeper1.2.1 查找kafka对应zookeeper版本启动 2. 下载kafka 安装包 kafka 3.0.0 之前 &#xff08;包括3.0.0版本&#xff09;支持jdk 8 &…

浏览器唤醒本地应用

我们在使用一些应用的时候&#xff0c;需要通过本地浏览器来唤醒本地应用的需求。 就像我们以前使用QQ一样&#xff0c;在网页上点击了某个按钮&#xff0c;会唤醒本地安装的QQ应用。 这里来介绍一下怎么使用自定义协议来唤醒本地的Electron应用&#xff08;其他框架写的应用同…

汽车电子Autosar之以太网SOME/IP(续)

前言 首先&#xff0c;请问大家几个小小问题&#xff0c;你清楚&#xff1a; 你知道什么是SOME/IP SD吗&#xff1f;SOME/IP-SD有何作用呢&#xff1f;SOME/IP-SD 包含哪些内容呢&#xff1f;SOME/IP-TP 为什么会存在&#xff1f; 今天&#xff0c;我们就来一起探索并回答这…

Mysql数据库表管理和用户管理与授权

一、表结构管理 1. 修改表名 ALTER TABLE 旧表名 RENAME 新表名 2.扩展表结构&#xff08;增加字段&#xff09; ALTER TABLE 表名 ADD 字段名 数据类型; 3.修改字段名&#xff0c;添加唯一健 change ALTER TABLE 表名 CHANGE 旧字段名 新字段名 [数据类型] [约束]; 4.删除字段…

Linux 多路转接 —— select

目录 传统艺能&#x1f60e;select&#x1f60d;fd_set 结构&#x1f612;timeval 结构&#x1f923; socket 就绪条件&#x1f601;读条件&#x1f923;写就绪&#x1f60d;异常就绪&#x1f612; select 工作流程&#x1f618;select 服务器实现&#x1f602;socket 类&#…