我们将编写一个 JavaScript 程序来查找在二进制字符串的任何循环的开头和结尾处连续放置的零的最大数量。我们的程序将采用二进制字符串作为输入,并返回给定字符串的任何旋转中放置在开头和结尾的零的最大数量。为了解决这个问题,我们将使用字符串操作技术来操作输入字符串并找到所需的输出。
在下一步中,我们将旋转输入字符串并计算旋转字符串开头和结尾处的零数量。我们将继续旋转字符串,直到再次到达原始输入字符串,并跟踪所有旋转期间在开头和结尾放置的零的最大数量。
最后,我们将返回最大数量的零作为程序的输出。该程序将非常高效,并且将以线性时间复杂度运行,即使对于大量输入,它也适合解决此问题。
方法
要找到在二进制字符串的任何旋转的开始和结束处连续放置的零的最大数量,请按照以下步骤操作 -
首先,将原始二进制字符串与其本身连接起来形成一个新字符串。
接下来,使用循环通过在每次迭代中将一个字符从新字符串的开头移动到结尾来生成二进制字符串的所有可能的旋转。
对于每次旋转,找到字符串开头和结尾连续放置的零的数量。
将迄今为止找到的最大零个数存储在变量中。
重复步骤 3 和 4,直到处理完所有旋转。
存储在变量中的最终值是二进制字符串的任何循环中在开头和结尾处连续放置的零的最大数量。
示例
下面是一个 JavaScript 程序的示例,该程序查找在二进制字符串的任何旋转的开始和结束处连续放置的零的最大数量 -
function maxZeros(binaryString) { // Store the number of zeros in the original binary string let originalZeros = 0; while (binaryString[originalZeros] === "0") { originalZeros++; } // Store the number of zeros in each rotation of the binary string let maxZeros = originalZeros; let rotatedZeros = originalZeros; for (let i = 1; i < binaryString.length; i++) { if (binaryString[i] === "0") { rotatedZeros++; } else { rotatedZeros = 0; } maxZeros = Math.max(maxZeros, rotatedZeros); } // Return the maximum number of zeros return maxZeros; } // Example usage let binaryString = "0110001111"; let maxZerosCount = maxZeros(binaryString); console.log("The maximum number of zeros is: " + maxZerosCount);
说明
函数 maxZeros 将二进制字符串作为输入,并返回在该字符串的任何旋转的开始和结束处连续放置的零的最大数量。
第一步是查找原始二进制字符串中零的数量。这是通过使用 while 循环来完成的,该循环一直持续到遇到 0 以外的字符。零的数量存储在originalZeros变量中。
下一步是找到二进制字符串每次循环中零的数量。为此,我们使用从 1 开始直至二进制字符串长度的 for 循环。在循环的每次迭代中,我们检查当前字符是否为 0。如果是,我们增加 rotatedZeros 计数。如果不是,我们将 rotatedZeros 计数重置为 0。最后,我们通过比较 rotatedZeros 与 maxZeros 来更新迄今为止看到的最大零数。 >并保留两者中较大的一个。
循环结束后,返回最大数量的零。
最后,该函数的示例用法展示了如何使用二进制字符串调用它,并将结果记录到控制台。
以上是JavaScript 程序查找二进制字符串任意循环中在开头和结尾处连续放置的 0 的最大数量的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)