室内设计网站案例,网站网站自己做,智慧城市建设评价网站,做企业网站的尺寸是多少个人主页#xff1a;Lei宝啊
愿所有美好如期而遇 题目链接如下#xff1a;
力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试#xff1f;力扣提供海量技术面试资源#xff0c;帮助你高效提升编程技能#xff0c;轻松拿下世界 IT 名… 个人主页Lei宝啊
愿所有美好如期而遇 题目链接如下
力扣LeetCode官网 - 全球极客挚爱的技术成长平台备战技术面试力扣提供海量技术面试资源帮助你高效提升编程技能轻松拿下世界 IT 名企 Dream Offer。https://leetcode-cn.com/problems/multiply-strings/description/
题目 思路
我们首先不能将字符串全部转换为数字因为存储不下而且注意也不允许所以我们应该想到用一个字符串尾部的单位乘一个字符串然后存储得到的字符串再由尾部的倒数第二位乘再存储结果字符串并且根据位数在结果字符串后补0最终得到的所有结果字符串相加就是我们的答案。
字符串相加(C)字符串相加
图解 代码
string multiply(string num1, string num2) {if(num1 0 || num2 0){return 0;}int s1 num1.size();int s2 num2.size();if(s1 s2){num1.swap(num2);s1 num1.size();s2 num2.size();}int count 0;string s[201];for(int is1-1; i0; i--){int ch1 num1[i] - 48;int add 0;for(int js2-1; j0; j--){int ch2 num2[j] - 48;s[i] ch2 * ch1 % 10 48 add;add ch2 * ch1 / 10; }if(add 0){s[i] add 48;}reverse(s[i].begin(),s[i].end());for(int k0; kcount; k){s[i] 0;}count;}string result;for(int i0; is1; i){result addStrings(result,s[i]);}return result;}string addStrings(string num1, string num2) {string result;int next 0;char tmp1 0;char tmp2 0;while(!num1.empty() || !num2.empty()){if(!num1.empty())tmp1 num1[num1.size()-1] - 48;elsetmp1 0;if(!num2.empty())tmp2 num2[num2.size()-1] - 48;elsetmp2 0;int sum tmp1 tmp2 next;next sum / 10;sum % 10;result (sum48);if(!num1.empty())num1.erase(num1.end()-1);if(!num2.empty())num2.erase(num2.end()-1);}if(next 0)result 1;reverse(result.begin(),result.end());return result;}