【LeetCode每日一题】——415.字符串相加
文章目录
- 一【题目类别】
- 二【题目难度】
- 三【题目编号】
- 四【题目描述】
- 五【题目示例】
- 六【题目提示】
- 七【解题思路】
- 八【时空频度】
- 九【代码实现】
- 十【提交结果】
一【题目类别】
- 字符串
二【题目难度】
- 简单
三【题目编号】
- 415.字符串相加
四【题目描述】
- 给定两个字符串形式的非负整数
num1
和num2
,计算它们的和并同样以字符串形式返回。 - 你不能使用任何內建的用于处理大整数的库(比如
BigInteger
), 也不能直接将输入的字符串转换为整数形式。
五【题目示例】
-
示例 1:
- 输入:num1 = “11”, num2 = “123”
- 输出:“134”
-
示例 2:
- 输入:num1 = “456”, num2 = “77”
- 输出:“533”
-
示例 3:
- 输入:num1 = “0”, num2 = “0”
- 输出:“0”
六【题目提示】
- 1 < = n u m 1. l e n g t h , n u m 2. l e n g t h < = 1 0 4 1 <= num1.length, num2.length <= 10^4 1<=num1.length,num2.length<=104
- n u m 1 num1 num1 和 n u m 2 num2 num2 都只包含数字 0 − 9 0-9 0−9
- n u m 1 num1 num1 和 n u m 2 num2 num2 都不包含任何前导零
七【解题思路】
- 我们只需要模拟十进制加法的过程即可
- 从后向前遍历两个字符串
- 进行加法运算,并计算得到进位
- 然后根据进位继续向下运算,得到每一对值的计算结果
- 如果某一个加数计算完毕,对其补零继续运算,直到运算结束
- 注意最后一次计算可能会有进位,所以需要特殊判断
- 具体细节可以参考下面的代码
- 最后返回结果即可
八【时空频度】
- 时间复杂度: O ( m a x ( m , n ) ) O(max(m, n)) O(max(m,n)), m m m和 n n n分别为字符串1和字符串2的长度
- 空间复杂度: O ( 1 ) O(1) O(1)
九【代码实现】
- Java语言版
class Solution {public String addStrings(String num1, String num2) {// 分别定义两个字符串的索引指向末尾int i = num1.length() - 1;int j = num2.length() - 1;// 保持进位int add = 0;// 保存结果StringBuilder res = new StringBuilder();// 字符串相加while (i >= 0 || j >= 0) {// 获取两个加数int temp1 = (i >= 0) ? num1.charAt(i) - '0' : 0;int temp2 = (j >= 0) ? num2.charAt(j) - '0' : 0;// 根据进位计算当前位的和int temp = temp1 + temp2 + add;// 计算进位add = temp / 10;// 计算当前位的求和值res.insert(0, temp % 10);// 向前继续求和i--;j--;}// 返回结果(注意:最后一次计算可能会有进位,需要特殊判断)if (add != 0) {res.insert(0, add);}return res.toString();}
}
- Python语言版
class Solution:def addStrings(self, num1: str, num2: str) -> str:# 分别定义两个字符串的索引指向末尾i = len(num1) - 1j = len(num2) - 1# 保持进位add = 0# 保存结果res = ""# 字符串相加while i >= 0 or j >= 0:# 获取两个加数temp1 = int(num1[i]) if i >= 0 else 0temp2 = int(num2[j]) if j >= 0 else 0# 根据进位计算当前位的和temp = temp1 + temp2 + add# 计算进位add = temp // 10# 计算当前位的求和值res = str(temp % 10) + res# 向前继续求和i -= 1j -= 1# 返回结果(注意:最后一次计算可能会有进位,需要特殊判断)return "1" + res if add else res
- C++语言版
class Solution {
public:string addStrings(string num1, string num2) {// 分别定义两个字符串的索引指向末尾int i = num1.length() - 1;int j = num2.length() - 1;// 保持进位int add = 0;// 保存结果string res = "";// 字符串相加while (i >= 0 || j >= 0) {// 获取两个加数int temp1 = (i >= 0) ? num1[i] - '0' : 0;int temp2 = (j >= 0) ? num2[j] - '0' : 0;// 根据进位计算当前位的和int temp = temp1 + temp2 + add;// 计算进位add = temp / 10;// 计算当前位的求和值res = char((temp % 10) + '0') + res;// 向前继续求和i--;j--;}// 返回结果(注意:最后一次计算可能会有进位,需要特殊判断)if (add) {return '1' + res;}return res;}
};
十【提交结果】
-
Java语言版
-
Python语言版
-
C++语言版
相关文章:
【LeetCode每日一题】——415.字符串相加
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 字符串 二【题目难度】 简单 三【题目编号】 415.字符串相加 四【题目描述】 给定两个字符…...
基于角色的访问控制(RBAC)在异构系统中的应用
在数字化蓬勃发展的当下,企业运营高度依赖各类异构系统。基于角色的访问控制(RBAC)成为管理这些系统中用户权限的核心策略。RBAC 依据组织内的岗位、职责定义角色,按角色分配权限,用户凭借所属角色获取相应访问权&…...
FPGA实现MIPI转FPD-Link车载同轴视频传输方案,基于IMX327+FPD953架构,提供工程源码和技术支持
目录 1、前言工程概述免责声明 2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、详细设计方案设计原理框图IMX327 及其配置FPD-Link视频串化-解串方案MIPI CSI RX图像 ISP 处理图像缓存HDMI输出工程源码架构 5、…...
远程控制macOS一直卡在100%,能连接上了却只显示了壁纸?
前言 前段时间有个朋友过来咨询关于Windows使用第三方远程软件(向日葵、Todesk等)远程连接控制macOS系统,但出现了一些奇奇怪怪的问题。 比如在连接的时候,一直卡在100%连接,对方的电脑却已经显示已经被控制的状态。…...
springboot中使用gdal将表中的空间数据转shapefile文件
springboot中使用gdal将表中的空间数据转shapefile文件 代码: // 样本导出-将样本表导出为shapefile,复制样本shp文件到临时目录下 sampleDir是文件夹pathpublic void setYbShapeFile(Yb yb, File sampleDir) {// 创建 前时项 和 后时项 文件夹File y…...
捋一捋相关性运算,以及DTD和NLP中的应用
捋一捋相关性运算,以及DTD和NLP中的应用 相关性和相干性,有木有傻傻分不清相关性数字信号的相关运算同维度信号的相关理解 相关--互相关--相干 回声消除过程如何套用这些知识相关性/相干性检测在DT中的应用参考 相关性和相干性,有木有傻傻分不清 这是容易混淆的两个…...
Calcite Web 项目常见问题解决方案
Calcite Web 项目常见问题解决方案 calcite-web Authoritative front-end development resources for Calcite design initiative. Includes extendable base components and styles, as well as a modular and efficient framework for ArcGIS properties. [这里是图片001] 项…...
3090. 每个字符最多出现两次的最长子字符串
题目内容: 给你一个字符串 s ,请找出满足每个字符最多出现两次的最长子字符串,并返回该 子字符串 的 最大 长度。 示例 1: 输入: s "bcbbbcba" 输出: 4 解释: 以下子字符串长…...
基于微信小程序的短视频系统(SpringBoot)+文档
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...
Git的简介
文章目录 一.Git是什么二.核心概念三.工作流程四.Git的优势 下载Git 推荐官网下载 官网地址 一.Git是什么 Git是一个分布式版本控制系统,用于跟踪文件的变化并协调多人对同一项目的开发工作。它就像是一个时光机器,能够记录文件在不同时间点的状态&…...
【XR】ATW
异步时间扭曲(Asynchronous Timewarp,简称ATW)是一种在虚拟现实(VR)技术中使用的算法,它通过生成中间帧来减少因帧率不足导致的抖动和延迟,从而提高用户体验。ATW技术在两个线程中完成时间扭曲的…...
记Fastjson2的一个报ConcurrentModificationException的bug
错误背景:fastjson2的parseObject方法,在spring webflux项目中被调用,有时会报java.util.ConcurrentModificationException错误。报错处的代码如下图: 改了半天与并发安全相关的代码,还是会报此错误。后来改变思路搜…...
JAVAweb学习日记(二)JavaScript
一、概念 二、JavaScript引入方式 三、JavaScript书写语法 输出语句: 变量: 数据类型、运算符、流程控制语句: 数据类型: 运算符: 字符串如果是 数字字符构成,先把读到的数字转为数字类型,后续…...
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
文章目录 一、整个工程的流程二、基于Vivado的FPGA开发流程实践(二选一多路器)什么是二选一多路器用verilog语言,Vivado软件进行该电路实现1、设计输入:Design Sources中的代码2、分析和综合:分析设计输入中是否有错误…...
Linux的VIM基本操作
编辑模式转换 编辑指令 linux用vim编辑代码,再用gcc进行编译 编辑命令如下 gcc编译如下...
2024年12月英语六级CET6写作与翻译笔记
目录 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可行的目标 2 翻译 2.1 洋山港(Yangshan Port) 2.2 中国航天事业 2.3 北斗卫星导航系统 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可…...
学习记录:electron主进程与渲染进程直接的通信示例【开箱即用】
electron主进程与渲染进程直接的通信示例 1. 背景: electronvue实现桌面应用开发 2.异步模式 2.1使用.send 和.on的方式 preload.js中代码示例: const { contextBridge, ipcRenderer} require(electron);// 暴露通信接口 contextBridge.exposeInMa…...
领域自适应
领域自适应(Domain Adaptation)是一种技术,用于将机器学习模型从一个数据分布(源域)迁移到另一个数据分布(目标域)。这在源数据和目标数据具有不同特征分布但任务相同的情况下特别有用。领域自适…...
Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)
KubeadmContainerd部署k8s(v1.28.2)集群(非高可用版) 文章目录 KubeadmContainerd部署k8s(v1.28.2)集群(非高可用版)一.环境准备1.服务器准备2.环境配置3.设置主机名4.修改国内镜像源地址5.配置时间同步6.配置内核转发及网桥过滤 …...
重温设计模式--职责链模式
文章目录 职责链模式的详细介绍C 代码示例C示例代码2 职责链模式的详细介绍 定义与概念 职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它旨在将请求的发送者和多个接收者解耦,让多个对象都有机会处理请求&a…...
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
一,简介 一般来说,公司有很多系统使用,为了实现统一的用户名管理和登录所有系统(如 GitLab、Harbor 等),并在员工离职时只需删除一个主账号即可实现权限清除,可以采用 单点登录 (SSO) 和 集中式…...
【Rust自学】5.1. 定义并实例化struct
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 5.1.1. 什么是struct struct的中文意思为结构体,它是一种自定义的数据类型,它允许程序为相关联的值命名和打包&am…...
vue-cli 5接入模块联邦 module federation
vue-cli 5接入模块联邦 module federation 模块联邦概念实现思路配置遇到的问题: 模块联邦概念 模块联邦由webpack 5最先推出的,让应用加载远程的代码模块来实现不同的Web应用共享代码片段.模块联邦分为两个角色,一个是生产者,一个是消费者.生产者暴露代码供消费者消费 (用一个…...
[前端]mac安装nvm(node.js)多版本管理
NVM功能简介 NVM(Node Version Manager)是一个用于管理多个Node.js版本的命令行工具,它允许开发者在同一台机器上安装、切换和卸载不同版本的Node.js,从而解决版本不兼容的问题。以下是NVM的一些主要功能和用途: 安装和…...
thinkphp8+layui分页
前端 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>demo</title><link href"//unpkg.com/layui2.9.20/dist/css/layui.css" rel"stylesheet"> </head> <…...
【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的?
【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的? 重要性:★★★ NLP Github 项目: NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用…...
VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
名人说:一点浩然气,千里快哉风。—— 苏轼《水调歌头》 创作者:Code_流苏(CSDN) 目录 一、Java开发环境搭建二、VScode下载及安装三、VSCode配置Java环境四、运行测试五、背景图设置 很高兴你打开了这篇博客,更多详细的安装教程&…...
计算机网络压缩版
计算机网络到现在零零散散也算过了三遍,一些协议大概了解,但总是模模糊糊的印象,现在把自己的整体认识总结一下,(本来想去起名叫《看这一篇就够了》,但是发现网上好的文章太多了,还是看这篇吧&a…...
大语言模型中的Agent;常见的Agent开发工具或框架
大语言模型中的Agent 大语言模型中的Agent是指以大语言模型为核心驱动,具有自主理解、感知、规划、记忆和使用工具等能力,能够自动化执行复杂任务的系统.以下是一些例子: AutoGPT:它相当于一个完整的工具包,可以为各种项目构建和运行自定义AI Agent。使用OpenAI的GPT-4和…...
设计模式-备忘录模式
背景 游戏角色恢复问题:角色有攻击力和防御力,在Boss站前保存攻击力和防御力,大战之后,攻击力和防御力下降,从备忘录恢复到大战前的状态。 传统思路: 一个游戏对象,对应一个保存状态对象。 …...
重温设计模式--状态模式
文章目录 状态模式(State Pattern)概述状态模式UML图作用:状态模式的结构环境(Context)类:抽象状态(State)类:具体状态(Concrete State)类&#x…...
道可云人工智能元宇宙每日资讯|2024(GIAC)智能视听大会在青岛举行
道可云元宇宙每日简报(2024年12月23日)讯,今日元宇宙新鲜事有: 2024(GIAC)智能视听大会在青岛举行 12月22日,2024(GIAC)智能视听大会在青岛举行。大会以“数字文化 智能…...
理解神经网络
神经网络是一种模拟人类大脑工作方式的计算模型,是深度学习和机器学习领域的基础。 基本原理 神经网络的基本原理是模拟人脑神经系统的功能,通过多个节点(也叫神经元)的连接和计算,实现非线性模型的组合和输出。每个…...
初学stm32 --- NVIC中断
目录 STM32 NVIC 中断优先级管理 NVIC_Type: ISER[8]: ICER[8]: ISPR[8]: ICPR[8]: IABR[8]: IP[240]: STM32 的中断分组: 中断优先级分组函数 NVIC_PriorityGroupConfig 中断初始化函…...
机器人角度参考方式
机器人的角度可以根据需求和系统设计来决定。通常情况下,机器人角度(如航向角或偏航角)有两种常见的参考方式: 参考开机时的 0:这是最常见的方式,机器人在开机时会将当前的方向作为 0(即参考方向…...
不同路径
不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径ÿ…...
WPS工具栏灰色怎么办
WPS离线不登录,开启工具栏等相关功能 当你在使用WPS的过程中,若因网络问题或其他特殊原因,导致无法登录使用WPS时,可根据以下步骤开启离线兼容模式,开启此模式后,可在未登录的状态下,激活并使用…...
js的节流与防抖方法封装
简介 节流(Throttling)和 防抖(Debouncing) 是防止频繁触发函数执行的两种技术,它们的目标都是减少函数的执行次数。 区别 防抖(Debouncing) :当用户停止触发事件后,经…...
深信服企业级数据备份与恢复系统(整机裸机恢复)
概述 深信服企业级数据备份与恢复系统可实现无需搭建目标环境,目标机可以是没有操作系统的物理主机或虚拟机,实现异构环境下的裸机恢复。 深信服企业级数据备份与恢复系统支持的多种连接恢复方式: 1. PXE连接恢复:PXE连接需要做…...
uniapp 微信小程序 页面部分截图实现
uniapp 微信小程序 页面部分截图实现 原理都是将页面元素画成canvas 然后将canvas转化为图片,问题是我页面里边本来就有一个canvas,ucharts图画的canvas我无法画出这块。 想了一晚上,既然canvas最后能转化为图片,那我直接…...
Sequelize ORM sql 语句工具
Sequelize ORM sql 语句工具 sequelize orm中文网 视频学习长乐未央 初始化配置 Sequelize orm 配置文章落日沉溺于海 在命令行中全局安装 npm i -g sequelize-clisequelize 执行需要匹配 mysql2 对应的依赖(安装 mysql2) npm i sequelize mysql2初始化…...
搭建Nacos注册中心
Nacos介绍 目前开源的注册中心框架有很多,国内比较常见的有: Eureka:Netflix公司出品,目前被集成在SpringCloud当中,一般用于Java应用 Nacos:Alibaba公司出品,目前被集成在SpringCloudAlibaba中…...
Linux 下SVN新手操作手册
下面来介绍Linux 下 SVN操作方法: 1、SVN的安装 Centos 7 安装Subversion sudo yum -y install subversion Ubuntu 安装Subversion sudo apt-get install subversion 自定义安装,官方地址:https://subversion.apache.org/ 2、SVN的使用…...
解释下什么是面向对象?面向对象和面向过程的区别?
看着很基础是吧,你还真不一定会 4-Java 中创建对象的几种方式? 1、使用new关键字,最常见的创建方式,通过调用类的构造方法(构造器)来创建对象。 2、使用反射,通过java的反射API可以动态的创建对…...
【CDN】快速了解CDN是什么?以及工作原理和应用场景
快速了解CDN是什么?以及工作原理和应用场景 一、什么是CDN?CDN相关的术语解释 二、CDN工作原理三、CDN与传统网站的区别四、CDN的作用和意义五、CDN的应用场景 一、什么是CDN? CDN英文全称Content Delivery Network,中文翻译即为内…...
【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
引言 在上一篇文章中,我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型,特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤,读…...
WPF+MVVM案例实战与特效(四十五)- 打造优雅交互:ListBox 的高级定制与行为触发(侧边菜单交互面板)
文章目录 1、引言2、案例效果3、案例实现1、依赖安装2、文件创建3、代码实现1、依赖引用与上下文2、个性化视觉效果:自定义 ItemContainerStyle3、页面样式与布局完整代码4、ViewModel 逻辑实现5、子界面代码:3、实现效果4、源代码获取5、总结1、引言 在WPF应用程序开发中,…...
Git进阶:本地或远程仓库如何回滚到之前的某个commit
在Git的使用过程中,我们经常会遇到需要回滚到之前某个commit的情况。无论是为了修复错误、撤销更改,还是为了重新组织代码,回滚到特定commit都是一个非常有用的技能。本文将介绍几种常用的回滚方法,帮助读者更好地掌握Git版本控制…...
Django 后端数据传给前端
Step 1 创建一个数据库 Step 2 在Django中点击数据库连接 Step 3 连接成功 Step 4 settings中找DATABASES Step 5 将数据库挂上面 将数据库引擎和数据库名改成自己的 Step 6 在_init_.py中加上数据库的支持语句 import pymysql pymysql.install_as_MySQLdb()Step7 简单创建两列…...
Docker 技术系列之安装多版本Mysql5.6和Mysql5.7
image 大家好,后面的就不是关于MAC专有的内容,基本是跟Java环境,基础技术方面有关。所以这个教程对于在linux系统还是macOS都是通用的,不用担心。 上一篇,我们安装好对应的Docker之后,感受到了它的便利。接…...