2695. 包装数组

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

创建一个名为 ArrayWrapper 的类,它在其构造函数中接受一个整数数组作为参数。该类应具有以下两个特性:

当使用 + 运算符将两个该类的实例相加时,结果值为两个数组中所有元素的总和。
当在实例上调用 String() 函数时,它将返回一个由逗号分隔的括在方括号中的字符串。例如,[1,2,3] 。

示例 1:

输入:nums = [[1,2],[3,4]], operation = "Add"
输出:10
解释:
const obj1 = new ArrayWrapper([1,2]);
const obj2 = new ArrayWrapper([3,4]);
obj1 + obj2; // 10

示例 2:

输入:nums = [[23,98,42,70]], operation = "String"
输出:"[23,98,42,70]"
解释:
const obj = new ArrayWrapper([23,98,42,70]);
String(obj); // "[23,98,42,70]"

示例 3:

输入:nums = [[],[]], operation = "Add"
输出:0
解释:
const obj1 = new ArrayWrapper([]);
const obj2 = new ArrayWrapper([]);
obj1 + obj2; // 0

提示:

  • 0 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000
  • 注意:nums 是传递给构造函数的数组。

解题思路

在JavaScript中,对两个数组进行"+“操作实际上是对两个数组进行字符串的拼接。当使用”+"操作符连接两个数组时,+操作符会先尝试调用数组对象的valueOf()方法。如果valueOf()返回的不是一个原始值(primitive value),则再尝试调用toString()方法。下面是具体的过程:

[1,2] + [2,3] 为例

  • 1、首先将数组[1, 2]和[2, 3]转换为字符串。

    • 数组[1, 2]转换为字符串"1,2"
    • 数组[2, 3]转换为字符串"2,3"
  • 2、然后将两个字符串进行拼接。

    • “1,2” + “2,3” = “1,22,3”

因此,表达式[1, 2] + [2, 3]的结果是字符串"1,22,3"。

因此这里我们需要重写数组的valueOf方法:

/*** @return {number}*/
ArrayWrapper.prototype.valueOf = function () {if (!this.nums || this.nums.length === 0) return 0;return this.nums.reduce((a, b) => a + b);
};

String([1,2]) = [1,2].toString(),所以我们需要重写数组的toString方法:

/*** @return {string}*/
ArrayWrapper.prototype.toString = function () {return JSON.stringify(this.nums);
};

AC代码

/*** @param {number[]} nums* @return {void}*/
var ArrayWrapper = function (nums) {this.nums = nums;
};/*** @return {number}*/
ArrayWrapper.prototype.valueOf = function () {if (!this.nums || this.nums.length === 0) return 0;return this.nums.reduce((a, b) => a + b);
};/*** @return {string}*/
ArrayWrapper.prototype.toString = function () {return JSON.stringify(this.nums);
};/*** const obj1 = new ArrayWrapper([1,2]);* const obj2 = new ArrayWrapper([3,4]);* obj1 + obj2; // 10* String(obj1); // "[1,2]"* String(obj2); // "[3,4]"*/

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

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

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

相关文章

什么是网络安全,如何防范?

网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断。 网络安全涵盖了网络设备安全、网络信息安全…

json数据转换为file文件格式

const jsonData {name:小明,age:18}; //转成字符串 const jsonStrings JSON.stringify(jsonData); // 创建Blob对象 const blob new Blob([jsonStrings],{type:application/json}); //转成文件 const file new File([blob],fileName.json,{type:application/json});

kaafka的rebalance机制

Kafka的Rebalance机制是为了实现高可用和负载均衡而设计的。当Kafka集群中的消费者组发生变化时&#xff08;例如有新的消费者加入或有消费者离开&#xff09;&#xff0c;Rebalance机制会自动重新分配分区给消费者&#xff0c;以确保每个消费者分配到大致相等的负载。 下面是…

优化管理流程 夯实管理基石

问团队就人才中心管理流程的梳理及优化设计、工作规范与管理制度梳理、跨部门与部门内部协作配合有效性等方面提出了诸多管理思路与方法工具&#xff0c;中心干部员工通过3个月的学习与参与项目&#xff0c;展现了更加积极的工作状态&#xff0c;并学习到了更为先进并科学的工作…

如何用AirServer进行手机投屏?,Airserver 永久激活注册码

AirServer一款投屏神器&#xff0c;可以帮你轻松地将iPhone、iPad投屏到Mac。是不是经常看到游戏主播用AirServer投屏&#xff1f;此外&#xff0c;AirServer也是视频Up主必备工具之一&#xff01;用来录制演示教程不错。除了实现单个手机投屏到电脑或荧幕。如果你有多画面投屏…

原神启动(递推,矩阵)

Part 1. 引子 求有多少 1 ∼ n 1\sim n 1∼n的排列&#xff0c;满足&#xff1a; 进行 k k k轮原神排序后变为升序 具体的&#xff0c;一轮原神排序的定义为&#xff1a; 指针 i i i按 [ 1 , n ) [1,n) [1,n)的顺序正序遍历&#xff0c;如果 a i > a i 1 a_i>a_{i1}…

React进阶 - 12(浅谈 state、props与render函数的关系)

本章内容 目录 一、state 与 render 函数的关系二、props 与 render函数的关系 上一节我们讲了如何使用 PropTypes及 DefaultProps来进行属性的类型校验及设置属性默认值。本节内容我们来了解一下 state、props与render函数的关系。 一、state 与 render 函数的关系 我们知道…

C++中的const常量-->‘only read,can‘t change‘

2024年1月22日 ///昨天外面下雨地没干&#xff0c;骑车摔得好结实&#xff0c;,, 2024年1月23日 内容整理自The Cherno:C系列 这个关键字确实有点难&#xff0c;看了好几遍原视频整理出来的知识框架&#xff0c;还需要加以练习 -----------------------------------------…

【AI视野·今日Robot 机器人论文速览 第七十五期】Thu, 11 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Thu, 11 Jan 2024 Totally 16 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Analytical Model and Experimental Testing of the SoftFoot: an Adaptive Robot Foot for Walking over Obstacles and Irre…

spawn_group_template | spawn_group | linked_respawn

字段介绍 spawn_group | spawn_group_template 用来记录与脚本事件或boss战斗有关的 creatures | gameobjects 的刷新数据linked_respawn 用来将 creatures | gameobjects 和 boss 联系起来&#xff0c;这样如果你杀死boss&#xff0c; creatures | gameobjects 在副本重置之前…

「我在淘天做技术」智能对话新纪元:百万日活对话机器人的 LLM 落地实践

作者&#xff1a;智能小蜜团队 一、前言 阿里小蜜家族&#xff08;阿里小蜜、店小蜜、万象&#xff09;&#xff0c;从 2015 年发展至今&#xff0c;已经成为了覆盖淘天 P-C&#xff08;平台-消费者&#xff09;、B-C&#xff08;商家-消费者&#xff09;、P-B&#xff08;平台…

C++学习笔记--数组

数组 所谓数组&#xff0c;就是一个集合&#xff0c;里面存放了相同类型的数据元素 特点1&#xff1a;数组中的每个元素数据元素都是相同的数据类型 特点2&#xff1a;数组是由连续的内存位置组成的 一维数组 一维数组定义的三种方式&#xff1a; 1、数据类型 数组名 [数…

【明道云】【企业数字化】如何将明道云的数据直连SmartBi使用

【背景】 明道云优势在于上传和企业内部流程的系统化&#xff0c;换句话说&#xff0c;是产生数据的部分。 SmartBi优势在于生成报表和即席查询等&#xff0c;是使用沉淀数据的部分。 如果能将这两部分的数据打通&#xff0c;可以大大扩展企业数字化框架的覆盖范围。让这两套平…

恭喜!中移集成、广西移动、辽宁移动三家客户学员通过亚信安慧AntDB ACP认证

新年伊始&#xff0c;中移集成、广西移动、辽宁移动三家客户燃起了极大的学习热情&#xff0c;联合亚信安慧AntDB数据库团队共同组织了第二期亚信安慧AntDB数据库中级培训。三家客户分别遴选各自优秀的高级运管人员参与本期培训。 培训安排及成果 为方便学员合理安排工作、学习…

【Linux】Linux进程信号(下)

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

独步IT界,开放API接口文档新标杆!

目录 1、简介 1.1 什么是API接口 1.2 为什么开放API接口 1.3 API接口的优势和应用领域 1.4 API接口的基本原则和设计准则 2、接口认证 2.1 认证方式和流程 2.2 API密钥的生成和管理 2.3 认证错误处理 3、接口调用 3.1 请求方法和URL规范 3.2 请求参数和格式 3.3 响…

遍历子网所有ip地址,寻找空闲ip

在cmd窗口下输入如下代码&#xff1a; for /l %i in (1,1,255) do ping -n 1 -w 60 10.183.27.%i | find "Reply" >> d:\pingall27.log 得到如下结果 上图中&#xff0c;有reply的代表该IP已经被占用。但是观察红框中 22-->25之间缺少23 24 则说明23/24 是…

ChatGPT到底好不好用?相比于搜索引擎的优势

在数字化时代&#xff0c;获取信息的方式正经历着翻天覆地的变化。搜索引擎曾经是我们获取信息的首选工具&#xff0c;但现在&#xff0c;随着人工智能技术的飞速发展&#xff0c;ChatGPT等智能聊天机器人正在逐渐改变我们搜索和处理信息的方式。那么&#xff0c;ChatGPT到底好…

宿舍安全用电监模块

学校宿舍安全用电监测模块是针对 0.4kV 以下的 TT、TN 系统设计的智能电力装置&#xff0c;具有单、三相交流电测量、四象限电能计量、谐波分析、开关量输入、继电器输出功能&#xff0c;以及 RS485 通讯或 GPRS 无线通讯功能&#xff0c;通过对配电回路的剩余电流、导线温度等…

理想架构的Doherty功率放大器理论与仿真

Doherty理论—理想架构的Doherty功率放大器理论与仿真 参考&#xff1a; 三路Doherty设计 01 射频基础知识–基础概念 ADS仿真工程文件链接&#xff1a;理想架构的Doherty功率放大器理论与仿真 目录 Doherty理论---理想架构的Doherty功率放大器理论与仿真0、Doherty架构的作用…