LeetCode 刷题【43. 字符串相乘】

43. 字符串相乘

自己做

解1:矩阵计数

class Solution {
public:string multiply(string num1, string num2) {int len1 = num1.size();int len2 = num2.size();if (num1[0] == '0' || num2[0] == '0')       //结果为0的情况return "0";//存储计算过程的矩阵vector<vector<int>> calculation(len1, vector<int>(len1 + len2, 0));string string_res;    //存放结果//计算for (int i = len1 - 1; i >= 0; i--) {int add = 0;          //进位   for (int j = len2 - 1; j >= 0; j--) {int res = (num1[i] - 48) * (num2[j] - 48) + add;     //当前结果//cout << res << " ";calculation[len1 - 1 - i][i + j + 1] = res % 10;   //余位add = res / 10;                                     //进位}if(add > 0)                                       //进位有多calculation[len1 - 1 - i][i] = add;   //cout << endl;}//// 输出二维向量//cout << "calculation = [" << endl;//for (int i = 0; i < calculation.size(); ++i) {//    cout << "  [";//    for (int j = 0; j < calculation[i].size(); ++j) {//        cout << calculation[i][j];//        if (j != calculation[i].size() - 1) {//            cout << ", ";//        }//    }//    cout << "]" << (i == calculation.size() - 1 ? "" : ",") << endl;//}//cout << "]" << endl;//累加矩阵所有元素int add = 0;          //累加的进位for (int i = len1 + len2 - 1; i >= 0; i--) {int res = 0;          //这一轮累加的结果for (int j = 0; j < len1; j++) res += calculation[j][i];res += add;   //加上进位string_res.insert(string_res.begin(), res % 10 + 48);     //余位存放进结果add = res / 10;                                           //进位更新}if (add > 0)string_res.insert(string_res.begin(), add + 48);     //余位存放进结果//消除前面的零while (string_res[0] == '0')string_res.erase(string_res.begin());return string_res;}
};

解2:优化解1

class Solution {
public:string multiply(string num1, string num2) {int len1 = num1.size();int len2 = num2.size();if (num1[0] == '0' || num2[0] == '0')       //结果为0的情况return "0";string string_res(len1 + len2, '0');    //存放结果,结果最长也只是两者长度的和,不可能更长//计算for (int i = len1 - 1; i >= 0; i--) {int add = 0;          //进位   for (int j = len2 - 1; j >= 0; j--) {int int_res = (num1[i] - 48) * (num2[j] - 48) + (string_res[i + j + 1] - 48) + add;     //当前结果string_res[i + j + 1] = int_res % 10 + 48;                //余位存放进结果add = int_res / 10;                                     //进位}if (add > 0)                                      //进位有多string_res[i] = add + 48;}//消除前面的零while (string_res[0] == '0')string_res.erase(string_res.begin());return string_res;}
};

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

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

相关文章

NLP数据增强方法及实现-A

目录 词替换 主要参考&#xff1a;paddlenlp/data_aug模块 词替换数据增强策略也即将句子中的词随机替换为其他单词进行数据增强&#xff0c;这里我们将介绍如何使用paddlenlp.dataaug.WordSubstitute进行词级别替换的数据增强。 WordSubstitute 参数介绍&#xff1a;aug_ty…

EhViewer安卓ios全版本类下载安装工具的完整路径解析

开发一款类似EhViewer的下载安装工具&#xff08;集下载管理、应用部署等功能于一体&#xff09;&#xff0c;需要经历从需求锚定到落地发布的系统性流程。以下从需求拆解到技术落地的全维度指南&#xff0c;将帮你理清开发脉络&#xff0c;避开常见陷阱。安装 GitHub - huangy…

MySQL 主键详解:作用与使用方法

在 MySQL 数据库中&#xff0c;主键&#xff08;Primary Key&#xff09; 是表结构设计中最重要的约束之一。它不仅是数据唯一性的保障&#xff0c;也是多表关联、查询优化的核心工具。本文将从 主键的作用 和 主键的用法 两个方面进行讲解&#xff0c;并配合代码示例帮助理解一…

lib.dom.d.ts

lib.dom.d.ts 是一个 TypeScript 类型声明文件&#xff0c;它是 TypeScript 标准库的一部分&#xff0c;用于定义浏览器 DOM&#xff08;文档对象模型&#xff09;相关的类型和接口。这个文件为开发者提供了浏览器中所有内置的 DOM 类型的定义&#xff0c;包括 localStorage、d…

Spring 工具类:StopWatch

StopWatch 是 Spring 框架提供的一个简单而强大的计时工具类&#xff0c;用于测量代码块的执行时间。它特别适合在开发阶段进行性能分析、调试和优化。 基本使用方法 // 创建 StopWatch 实例&#xff08;可指定 ID&#xff09; StopWatch stopWatch new StopWatch("性能分…

解决 VSCode 运行 Python 时 ModuleNotFoundError: No module named ‘open_webui‘ 问题

目录 1. 问题原因分析 2. 解决思路 3. 解决步骤 3.1 打开或创建 .vscode/launch.json 3.2 添加调试配置 3.3 配置说明 3.4 运行测试 4. 总结 在使用 VSCode 调试 Python 项目时&#xff0c;我们经常会遇到类似下面的错误&#xff1a; Exception has occurred: ModuleN…

Python基础-数据结构

数据结构 Python提供了四种主要的内置数据结构&#xff1a;列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;、字典&#xff08;Dictionary&#xff09;和集合&#xff08;Set&#xff09;。每种数据结构都有其特定的用途和特性。 Python数据结构概览&…

NLP学习之Transformer(1)

初识 Transformer &#xff08;1&#xff09; 1.简介 1.1主要特点&#xff1a; self-attention&#xff1a; 自注意力机制&#xff0c;Transformer的核心是自注意力机制&#xff0c;它允许模型在处理某个位置的输入时&#xff0c;能够直接与其他位置的输入交互&#xff0c;而不…

C语言笔记6:C高级 part1

1.gcc 编译器 编译流程 预处理-》编译》汇编》链接》 E 预处理的命令 S 编译汇编代码 -c汇编阶段命令 -o 输出对应的文件GDB调试工具2.作用域存储分类// C高级部分知识多&#xff0c; 加上这周 我学的知识量有点爆炸。家里又有事情&#xff0c;这周末要回老家 争取下周补齐吧。…

A12预装app

在A12上预装应用&#xff0c;出现了一个异常。在此记录问题描述&#xff1a;在A12上预装应用按照A13的预装方案报错&#xff0c;mk文件如下&#xff1a;LOCAL_PATH : $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS : optional LOCAL_MODULE : Tideen_PTT LOCAL_MODU…

termios 线程 poll epoll进化 二叉AVL红黑树

struct termios tio 是什么 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <termios.h>#define SERIAL_PORT "/dev/ttyS0" #define BUF_SIZE 256int main(v…

C++设计模式:类间关系

类封装了数据和行为&#xff0c;是面向对象的重要组成部分&#xff0c;它是具有相同属性、操作、关系的对象集合的总称。在系统中&#xff0c;每个类都具有一定的职责&#xff0c;职责指的是类要完成什么样子的功能&#xff0c;要承担什么样子的义务。一个类可以有多种职责&…

MSYS2+CMake配置C/C++开发环境

目录一、MSYS2是什么1.1 核心架构与组件​​1.1.1 背景介绍1.1.1.1 Cygwin1.1.1.2 MinGW和Mingw-w641.1.1.3MSYS和MSYS21.1.2 技术基础​​1.1.3 多环境支持​​1.2 核心功能​​1.2.1 类Unix开发环境​​1.2.2 开发工具链​​1.2.3 软件仓库与包管理​​二、安装和配置2.1 配置…

Vue 3 + TypeScript:package.json 示例 / 详细注释说明

一、示例 / 详细注释说明 {// 项目基础信息"name": "vite-project", // 项目名称&#xff08;建议使用 kebab-case 格式&#xff09;"private": true, // 标记为私有项目&#xff0c;避免意外发布到 npm"version": "1.0.…

SpatialVLM和SpatialRGPT论文解读

目录 一、SpatialVLM 1、概述 2、方法 3、实验 二、SpatialRGPT 1、概述 2、方法 3、训练方法 4、实验 一、SpatialVLM 1、概述 SpatialVLM是最早的依赖传统VLMs实现3D空间推理能力的论文&#xff0c;在24年1月由DeepMind团队提出&#xff0c;当时对比的还是GPT4v&am…

理解GPU架构:基础与关键概念

GPU 基础概述&#xff1a;从图形渲染到 AI 与高性能计算的核心 Graphics Processing Units&#xff08;GPU&#xff09;已从专用的图形渲染硬件演进为 AI、科学计算与高性能任务的中坚力量。本文将介绍 GPU 架构的基础知识&#xff0c;包括其组成部分、内存层次结构&#xff0c…

订单状态定时处理(Spring Task 定时任务)

订单状态定时处理 如果最后一秒刚好支付了咋办?如何补偿? 需要将支付状态和订单状态一起考虑,或者直接使用状态机 Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 **定位:**定时任务框架 **作用:**定时自动执行某段Java代码 …

职得AI简历-免费AI简历生成工具

本文转载自&#xff1a;职得AI简历-免费AI简历生成工具 - Hello123工具导航 ** 一、核心功能解析 职得 AI 简历是 AI 驱动的智能求职平台&#xff0c;通过深度学习算法分析百万优质简历数据&#xff0c;提供从简历生成到面试准备的全流程服务&#xff0c;显著提升求职竞争力。…

8.14 机器学习(1)

机器学习基础一、什么是机器学习定义&#xff1a;让计算机利用大量数据在特定任务上持续改进性能的过程&#xff0c;可以让任务完成的更好。机器学习的领域很多。二、机器学习基本术语数据集、样本、特征&#xff08;属性&#xff09;、属性空间、向量表示、训练集&#xff08;…

给电脑升级内存,自检太慢,以为出错

公司电脑是16G内存&#xff0c;用虚拟机时非常吃力。于是跟领导说&#xff0c;买了32G内存和1T SSD。电脑有两个SATA数据线&#xff0c;SATA电源头只有一个。于是买了几个1转2&#xff0c;顺利接上。把原来的16G拔下&#xff0c;换上32G内存。结果开机没反应。心里就有点嘀咕&a…