当前位置: 首页 > article >正文

【C++】字符串相乘

1.题目

2.代码

介绍一种比较简单的方法,就是先将字符串逆序,然后取出其中每一位的数相乘、相加。最后再考虑进位问题。

class Solution {
public:
    string multiply(string num1, string num2) {
        //先排除边界情况,防止输出"00000..."
        if(num1=="0"||num2=="0") return "0";
        int size1=num1.size(),size2=num2.size();
        vector<int> tem(size1+size2-1,0);
        //先将字符串逆序
        reverse(num1.begin(),num1.end());
        reverse(num2.begin(),num2.end());
        //无进位相加
        for(int i=0;i<size1;i++){
            for(int j=0;j<size2;j++){
                tem[i+j]+=(num1[i]-'0')*(num2[j]-'0');
            }
        }
        //t记录余数和进位,n防止越界。
        int t=0,n=0;
        string str;
        //处理进位问题
        while(n<size1+size2-1||t){
            if(n<size1+size2-1) t+=tem[n++];
            str+=t%10+'0';
            t=t/10;
        }
        reverse(str.begin(),str.end());
        return str;
    }
};

3.提交结果

时间复杂度:O(n^2)。


http://www.kler.cn/a/399388.html

相关文章:

  • Java爬虫(Jsoup)详解
  • Python绘制雪花
  • 【jvm】HotSpot中方法区的演进
  • 红外遥控信号解码
  • Jenkins下载安装、构建部署到linux远程启动运行
  • Vue 3 中的 ref 完全指南
  • 计算机网络-mac地址与ip地址的区别总结
  • Cesium中3Dtiles模型的信息读取和高亮显示单独瓦片
  • 刘艳兵-DBA033-如下那种应用场景符合Oracle ROWID存储规则?
  • 使用 Samba实现Ubuntu 中远程连接 Windows 主机进行文件传输
  • 免费下载 | 2024年金融数字化转型白皮书
  • HuggingFace:基于YOLOv8的人脸检测模型
  • xpath表达式学习总结
  • redis:RDB和AOF机制
  • 【算法】回文数索引、回文子串输出、整数反转
  • JavaScript 中的多重继承与 ES6 中的继承
  • Linux(光速安装+centos镜像 图片+大白话)
  • Python 小高考篇(7)常用模板
  • Python 小高考篇(6)常见错误及排查
  • Softmax Temperature
  • HarmonyOS:使用常用组件构建页面
  • uniapp vue3的下拉刷新和上拉加载
  • java 读取 有时需要sc.nextLine();读取换行符 有时不需要sc.nextLine();读取换行符 详解
  • 药香代码:Spring Boot中药实验管理实践
  • 在Flutter中,禁止侧滑的方法
  • 基于微信小程序的在线学习平台+LW示例参考