字符串-43.字符串相乘-力扣(LeetCode)

一、題目解析

1、計算乘積后,將結果也按字符串返回

2、字符串長度在[1,200]

二、算法原理

為了方便字符串計算,我們將其逆置,符合我們的計算需求,"123"將變為"321"

解法1:模擬小學列豎式計算

但還是有細節需要注意

細節1:在高位相乘時,要補上“0”

我們自己在計算時,不加0,是因為我們知道哪里是有0的,只是懶得寫。但對于我們計算字符串相加時,不加0,會導致計算出錯,所以要補上0

細節2:處理前導“0”

在計算123x0的時候,由于我們對字符串進行處理,所以會出現"000"這樣的結果,所以需要特殊處理一下

細節3:注意計算結果的順序

我們逆序了相乘的字符串,但我們計算的結果也是逆序的,所以我們需要對結果進行逆置

解法2:對解法1的優化

對于解法1,我們需要處理多次進位,計算123*6,123*50,123*400的時候需要處理進位,在計算和的時候也需要處理進位,這就導致了代碼實現十分麻煩,所以在此基礎上提出了優化

將計算完的每一位先不處理進位,將其放入到一個數組tmp中,存放的位置也很好知道,從右往左數3是第0位,2是第1位,1是第2位,對于3*6的結果18應該放在數組下標0+0處,同理6*2的結果12放在數組下標1+0處,如此操作完后我們最后最數組內存存儲的值做進位計算

用ret存儲字符串,記得逆置哦

個人建議第一種解法看看官方代碼就行了,真要好理解好上手,還得看解法2

鏈接:43. 字符串相乘 - 力扣(LeetCode)

三、代碼示例

解法2:

class Solution {
public:int tmp[399];//這里直接開399是因為最長只有200,不超過400,雖然有點浪費string multiply(string num1, string num2){int m = num1.size(),n = num2.size();string ret;reverse(num1.begin(),num1.end());reverse(num2.begin(),num2.end());for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){tmp[i+j] += (num1[j]-'0')*(num2[i]-'0');}}int carry = 0;for(int i = 0;i<m+n-1;i++){ret += to_string((tmp[i]+carry)%10);carry = (tmp[i]+carry)/10;}if(carry) ret += to_string(carry);//需要對保存進位做判斷,不為0則說明字符串不完整reverse(ret.begin(),ret.end());if(ret[0]=='0'&&ret[1]=='0')//前導0特判return "0";return ret;}
};

看到最后,如果對您有所幫助,還請點贊、收藏和關注一鍵三連,在未來還會繼續帶來優秀的內容,感謝觀看,我們下期再見!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96210.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96210.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96210.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙HAP包解包、打包、簽名及加固全流程解析

在鴻蒙應用開發過程中&#xff0c;HAP&#xff08;HarmonyOS Ability Package&#xff09;包的解包、打包、簽名以及加固是開發者們繞不開的重要環節。今天&#xff0c;就讓我們深入探討這一全流程&#xff0c;幫助大家更好地理解和掌握相關操作。 一、HAP解包 解包是分析和修…

PyTorch之張量創建與運算

PyTorch 主要有以下幾個基礎概念&#xff1a;張量&#xff08;Tensor&#xff09;、自動求導&#xff08;Autograd&#xff09;、神經網絡模塊&#xff08;nn.Module&#xff09;、優化器&#xff08;optim&#xff09;等。張量&#xff08;Tensor&#xff09;&#xff1a;PyTo…

數據 儲存

文件儲存 網頁版爬蟲數據庫 &#xff1a; https://spidertools.cn/#/crypto TEXT 文本儲存 可以使用記事本打開 r #讀取。 r #讀寫&#xff0c;文件指針放在文件的開頭。 w #寫入&#xff0c;覆蓋原文件。 w #讀寫&#xff0c;覆蓋原文件。 a #附加。 a #讀寫&…

Flask 博客系統(Flask Blog System)

目標&#xff1a;零基礎也能從頭搭建一個支持文章管理、評論、分類標簽、搜索、用戶登錄的博客系統 技術棧&#xff1a;Flask SQLite SQLAlchemy Jinja2 HTML/CSS Flask-Login 開發工具&#xff1a;VSCode 學習重點&#xff1a;MVC 模式、數據庫操作、會話管理、表單處理一…

基于RFID技術的寵物自動喂食器方案

一、背景 寵物已經成為現代人生活中不可或缺的一部分&#xff0c;隨著養寵物的人越來越多&#xff0c;寵物的數量也越來越多&#xff0c;有些家庭甚至養了兩只以上的貓狗或者貓狗混養&#xff0c;寵物間的管理問題也越來越突出&#xff0c;如寵物之間的搶食行為&#xff0c;易…

conda常見問題

文章目錄run "conda init" before "conda activate"打開PowerShell自動進入base環境&#xff08;cmd沒有這個問題&#xff09;run “conda init” before “conda activate” 在使用conda命令創建env后使用conda activate命令&#xff0c;出現"run ‘…

第5章 HTTPS與安全配置

5.1 HTTPS概述 5.1.1 為什么需要HTTPS 數據加密:保護傳輸中的敏感數據 身份驗證:確認服務器身份的真實性 數據完整性:防止數據在傳輸過程中被篡改 SEO優勢:搜索引擎優先排名HTTPS網站 瀏覽器要求:現代瀏覽器對HTTP網站顯示不安全警告 合規要求:許多行業標準要求使用HTTP…

Java入門級教程17——利用Java SPI機制制作驗證碼、利用Java RMI機制實現分布式登錄驗證系統

目錄 1.制作驗證碼——java SPI機制 1.1 類所屬包情況 1.2 具體實現 1.2.1 核心接口&#xff1a;ICode 1.2.2 接口實現類&#xff1a;驗證碼的具體生成邏輯 1.2.3 服務工廠類&#xff1a;CodeServiceFactory&#xff08;核心&#xff1a;SPI 服務發現&#xff09; 1.2.…

ES6筆記5

1. Promise相當于一個容器&#xff0c;保存著未來才要結束的事件&#xff08;異步操作&#xff09;的一個結果&#xff0c;各種異步操作都可以用同樣方法處理 axios特點&#xff1a;對象的狀態不受外界影響&#xff0c;處理異步操作&#xff0c;3個狀態&#xff0c;Pending&…

解決idea2021maven依賴導入后還是找不到包,爆紅無法導入

1.依賴導入后pom.xml文件以及Maven,此兩處代碼還是爆紅 2.解決方法 由技術大佬同事幾分鐘解決,他記憶深刻之前搞過很久,一看就知道哪里出問題了 我之前是配過Maven的本地倉庫的但是沒有用,這次出問題之后長教訓了,技術大佬說盡量用自己的本地倉庫,不要用idea的Maven倉庫,容易…

【硬件-筆試面試題-81】硬件/電子工程師,筆試面試題(知識點:詳細講講同步時鐘與異步時鐘通信)

題目匯總版--鏈接&#xff1a; 【硬件-筆試面試題】硬件/電子工程師&#xff0c;筆試面試題匯總版&#xff0c;持續更新學習&#xff0c;加油&#xff01;&#xff01;&#xff01;-CSDN博客 【硬件-筆試面試題-81】硬件/電子工程師&#xff0c;筆試面試題&#xff08;知識點…

php計算一個模擬增長過程函數

private function calculateGrowth($progress) {// 使用多個增長階段模擬不均勻性if ($progress < 0.3) {// 前30%時間&#xff1a;緩慢增長 30 %return pow($progress / 0.3, 0.7) * 0.3;} elseif ($progress < 0.7) {// 中間40%時間&#xff1a;快速增長 50%return 0.3…

華為USG6000v2 NAT模式下IPSEC IKE V1 實驗

USG6000v2 NAT模式下IPSEC 實驗 拓撲圖公網配置OSPF路由協議&#xff08;網絡要求能通就行&#xff09; 一、 總部配置 &#xff08;一&#xff09;交換機配置 1、 總部交換機到防火墻網段 192.168.10.0/24 2、 交換機G0/0設置成access端口劃分vlan 10&#xff0c;網關 192.168…

android 里設計context的作用

Android中的Context是一個核心設計機制&#xff0c;其作用主要體現在以下幾個方面&#xff1a; 1. 提供應用程序環境信息 Context作為抽象類&#xff0c;封裝了應用與系統交互所需的全局環境信息&#xff0c;包括資源訪問、組件啟動、系統服務調用等基礎能力。它本質上是應用…

能發彈幕的簡單視頻網站

界面參考了Youtube&#xff0c;后端使用Spring Boot&#xff0c;前端Vue&#xff0c;vuetifyjs。支持自動生成封面圖&#xff0c;發送彈幕、AI內容審核等功能。 一個簡單的視頻網站 網站名稱是 TikTok 與 YouTube 的縫合&#xff0c;Logo 為豆包 AI 生成 主要界面參考了 Yout…

了解網站安全監測系統的重要性

在當今數字化時代&#xff0c;網站已經成為企業發展和品牌推廣的關鍵渠道之一。然而&#xff0c;隨之而來的是網絡安全威脅的增加&#xff0c;包括數據泄露、惡意攻擊和病毒感染等問題。為了保護網站和用戶信息的安全&#xff0c;網站安全監測系統變得至關重要。1. 網站安全監測…

fastadmin安裝后后臺提示putenv()報錯,不顯示驗證碼

1.安裝fastadmin后&#xff0c;訪問項目后臺&#xff0c;提示報錯&#xff1a;Warning: putenv() has been disabled for security reasons in /www/wwwroot/app.aaa.cn/thinkphp/base.php on line 50 這時候驗證碼還不顯示&#xff0c;怎么解決呢&#xff1f;2.打開php.ini文件…

C語言深度入門系列:第二篇 - 變量與數據類型:程序世界的基本粒子與容器

C語言深度入門系列&#xff1a;第二篇 - 變量與數據類型&#xff1a;程序世界的基本粒子與容器 本章目標 本章將深入探討程序如何“記住”信息。你將徹底理解變量的本質是內存中的一塊空間&#xff0c;數據類型是解釋這塊內存中0和1的規則。我們將超越簡單的int, float用法&…

十一旅游中國氣象攻略:如何評估降雨、大風與紫外線

一、十一期間的中國氣候態要點(10 月上旬) 冷空氣南下增多:華北—東北易大風降溫;長江以南易出現冷暖空氣交匯降雨。 臺風未完全退場:華南沿海與海南、華東沿海仍可能受外圍環流與風雨影響。 晝夜溫差擴大:西北、華北、內陸盆地早晚涼,白天熱,霧/霜風險抬頭。 高原與…

鴻蒙項目篇-21-創建項目、修改軟件文字/圖標

目錄 【預覽】修改配置文件 module.json5 創建項目 初次-運行預覽 拷貝圖片 用于替換 【實操】修改配置文件 module.json5 點擊,顯示引用 ctrl + 點擊,引用追蹤 置頂模擬器 最終代碼 總結 先規劃再行動【高效】以終為始【不偏離方向/目標】 【預覽】修改配置文件 m…