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
英文地址,請注明出處:http://en.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…