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

【C++习题】6.字符串相加

题目:

链接🔗:字符串相加

题目:

052106feb64e3d520dd5b6fffc35762b


代码:

class Solution {
public:
    // 将两个字符串形式的数字相加
    string addStrings(string num1, string num2) {
        string str;// 用于存储最终的相加结果
        int end1=num1.size()-1,end2=num2.size()-1;// 两个字符串的末尾索引
        int next=0;// 用于存储进位值
        
        // 循环处理两个字符串的每一位数字
        while(end1>=0 || end2>=0){
            int x1=end1>=0?num1[end1]-'0':0;// 获取num1当前位的数字,如果已经遍历完则为0
            int x2=end2>=0?num2[end2]-'0':0;// 获取num2当前位的数字,如果已经遍历完则为0
            --end1;// 移动到num1的前一位
            --end2;// 移动到num2的前一位
            int ret = x1+x2+next;// 计算当前位的和加上进位
            next=ret/10;// 计算新的进位值
            ret=ret%10;// 计算当前位的结果

            // 将当前位的结果插入到结果字符串的开头
            str.insert(str.begin(), '0'+ret);
            //str.insert(0,1,'0'+ret);// 这行代码与上面一行功能相同,但注释掉的这行代码是另一种插入方式
        }
        // 如果最后还有进位,需要将进位值添加到结果字符串的开头
        if(next==1){
            str.insert(str.begin(), '1');
        }

        return str;// 返回最终的相加结果
    }
};

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

相关文章:

  • Java 岗面试八股文及答案整理(2024最新版)
  • 【Android】Android侧如何抓取日志?
  • WPF应用程序的生命周期-笔记
  • IC脚本之perl
  • 鸿蒙NEXT开发案例:简体繁体转换器
  • 事务详解(特性)
  • GPU 硬件原理架构(一)
  • 搭建MC服务器
  • uniapp 相关的swiper的一些注意事项
  • C++设计模式行为模式———迭代器模式
  • 图形学笔记 - 4. 几何 -网格操作和阴影映射
  • 自动化测试面试技巧
  • 天润融通携手挚达科技:AI技术重塑客户服务体验
  • 面试小结(一)
  • 解决Electron拖拽窗口点击事件失效问题
  • Python CSV文档自动化操作详解
  • SqlServer 链接一个 SqlServer的链接服务器
  • 自动驾驶系列—探索自动驾驶数据管理的核心技术与平台
  • 微信小程序样式
  • windows 和 linux检查操作系统基本信息